5

2D numpy 配列が与えられた場合、つまり;

import numpy as np

data = np.array([
     [11,12,13],
     [21,22,23],
     [31,32,33],
     [41,42,43],         
     ])

必要な行と列の 2 つのマスキング ベクトルに基づいて、新しいサブ配列を作成するか、選択した要素をその場で変更する必要があります。

rows = [False, False, True, True]
cols = [True, True, False]

そのような

print subArray

# [[31 32]
#  [41 42]]
4

1 に答える 1

4

まず、rowscolsが実際に booleanndarraysであることを確認してから、それらを使用してデータのインデックスを作成します

rows = np.array([False, False, True, True], dtype=bool)
cols = np.array([True, True, False], dtype=bool)
data[rows][:,cols]

説明の代わりにブール値のリスト を使用するndarrayと、numpy は をFalse/Trueasに変換し0/1、それを必要な行/列のインデックスとして解釈します。bool を使用する場合、ndarray実際には特定の NumPy メカニズムを使用しています。

于 2012-09-15T11:38:13.407 に答える