0

数値の配列があるとします:

a1 = np.arange(1,(30)+1)[:,None]        # or some other way og making (n,1) array

そして、4番目ごとのnrを取り出して、別の名前を付けたいと思います。次のようにします。

a2 = aaa[0:30:2]

それは問題ありませんが、上記以外のすべての数字を取り出すにはどうすればよいですか?? 言い換えると:

   [[2.]
    [3.]
    [5.]
    [6.]
    [8.]
    [9.]....

私はそれを行う方法がわかりません!

4

1 に答える 1

1

ブール マスクを作成し、配列に適用します。

>>> a2 = np.ones_like(a1)
>>> a2[::3] = 0
>>> a1[a2.astype(bool)]
array([ 2,  3,  5,  6,  8,  9, 11, 12, 14, 15, 17, 18, 20, 21, 23, 24, 26,
       27, 29, 30])

他の要素を抽出したい場合は、逆ブール値マスクを適用するだけです:

>>> a1[~a2.astype(bool)]
array([ 1,  4,  7, 10, 13, 16, 19, 22, 25, 28])
于 2013-09-03T10:55:40.923 に答える