0

このnumpy配列にアクセスする必要があります。最後の列が0の行だけの場合もあれば、最後の列の値が1の行だけの場合もあります。

y = [0  0  0  0
     1  2  1  1 
     2 -6  0  1
     3  4  1  0]

これを何度も繰り返す必要がありますが、重複する配列を作成したり、毎回再計算したりすることは避けたいと思います。関係するインデックスを特定して呼び出すことができる方法はありますか?私がこれを行うことができるように:

>>print y[LAST_COLUMN_IS_0] 
[0  0  0  0
3  4  1  0]

>>print y[LAST_COLUMN_IS_1] 
[1  2  1  1 
2 -6  0  1]

PS配列の列数は決して変更されず、常に4列になります。

4

1 に答える 1

6

numpyのブールインデックスを使用して選択する行を識別し、numpyの派手なインデックス/スライスを使用して行全体を選択できます。

print y[y[:,-1] == 0, :]
print y[y[:,-1] == 1, :]

それらはただの数の多い配列なので、いつものようにy[:,-1] == 0保存することができます。... == 1

y[:,-1]は最後の列全体を選択し、==等価性チェックは要素ごとに行われるため、ブール値の配列が生成されます。)

于 2012-09-01T17:49:33.077 に答える