1

2D配列に配置されたN次元値の配列があります。何かのようなもの:

import numpy as np
data = np.array([[[1,2],[3,4]],[[5,6],[1,2]]])

xまた、各データポイントと比較したい単一の値があり、データがに等しいかどうかを示すブール値の2D配列を取得したいと思いますx

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

私が行った場合:

data == x

私は得る

# array([[[ True,  True],
#        [False, False]],
#
#       [[False, False],
#        [ True,  True]]], dtype=bool)

これらを簡単に組み合わせて、希望する結果を得ることができます。data.shape[2]ただし、特に大きい場合は、これらの各スライスを繰り返し処理したくありません。私が探しているのは、次のものを直接取得する方法です。

array([[ True,  False],
        [False, True]])

この一見簡単なタスクのアイデアはありますか?

4

1 に答える 1

2

さて、(data == x).all(axis=-1)あなたが望むものを与えます。それでも結果の3次元配列を構築し、それを反復処理していますが、少なくともその反復はPythonレベルではないため、かなり高速である必要があります。

于 2012-05-02T17:00:46.790 に答える