1

私は二次元np.arrayのようなものを持っています

x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])

[4,5]ここで、x が( )に等しいインデックスが必要です-> [1, 4]。オペレーター==は別の方法で動作します。

x == [4,5]
array([[False, False],
       [ True,  True],
       [ True, False],
       [False, False],
       [ True,  True]], dtype=bool)

しかし、私はのようなものが欲しいです[False, True, False, False, True]。しても大丈夫andですか?

通常、配列は非常に大きく、何度も実行する必要があるため、非常に高速な方法が必要です。

4

2 に答える 2

4

これは厄介な方法である必要があります:

x = np.array([[1,2], [4,5], [4,6], [5,4], [4,5]])
(x == [4,5]).all(1)

#out: array([False,  True, False, False,  True], dtype=bool)
于 2012-05-22T09:21:16.387 に答える
0

numpy の経験はありませんが、これは標準の配列で機能します。

x = [[1, 2], [4, 5], [4, 6], [5, 4], [4, 5]]

indices = [i for i, v in enumerate(x) if v == [4, 5]]
# gives [1, 4]

matches = [v == [4, 5] for v in x]
# gives [False, True, False, False, True]
于 2012-05-22T08:52:37.847 に答える