forループを使用せずに任意の条件を満たすサブアレイの要素をディメンションを維持して得る

get results of numpy sub arrays in seperate sub-arrays on performing an operation, without using for loop – StackOverflow

numpyではサブアレイ(各行)の長さが異なるアレイを得る事はできない.
なので,まず1Dで結果を得た後,サブアレイのリストを作る必要がある.

import numpy as np


a = np.array(
    [
        [1,2,3,4],
        [4,56,7,1]
    ]
)

idx = a > 2
cond = idx.sum(1).cumsum()[:-1]
res = np.array_split(a[idx], cond)
res
[array([3, 4]), array([ 4, 56,  7])]
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください