にあなたが最後の二つの軸に各位置でa
内のすべての要素を越えbroadcasted
比較を実行するであろう、equality
のための入力配列を比較することができることを適用したときに、私が得たものです第2のアレイ内の対応する位置にある要素に対して行われる。これはそうのように、我々は最後の二つの軸間ALL
一致を確認し、最終的にANY
試合をチェックした試合のブール配列、になります -
((a==b).all(axis=(1,2))).any()
をサンプル実行
1)入力を:
In [68]: a
Out[68]:
array([[[2, 3, 0],
[1, 0, 1]],
[[3, 2, 0],
[0, 1, 1]],
[[2, 2, 0],
[1, 1, 1]],
[[1, 3, 0],
[2, 0, 1]],
[[3, 1, 0],
[0, 2, 1]]])
In [69]: b
Out[69]:
array([[3, 2, 0],
[0, 1, 1]])
2)ブロードキャストさ要素単位の比較:
In [70]: a==b
Out[70]:
array([[[False, False, True],
[False, False, True]],
[[ True, True, True],
[ True, True, True]],
[[False, True, True],
[False, True, True]],
[[False, False, True],
[False, False, True]],
[[ True, False, True],
[ True, False, True]]], dtype=bool)
3)ALL
最後の二軸間で一致し、最終的にANY
マッチ:
In [71]: (a==b).all(axis=(1,2))
Out[71]: array([False, True, False, False, False], dtype=bool)
In [72]: ((a==b).all(axis=(1,2))).any()
Out[72]: True
c
a
にするための同様の手順に従う - `np.in1d`ある1Dアレイについて
In [73]: c
Out[73]:
array([[300, 200, 0],
[ 0, 100, 100]])
In [74]: ((a==c).all(axis=(1,2))).any()
Out[74]: False
、しかしそれを2次元配列の行に適用するにはいくつかのトリックが必要です。関係するものを見るにはコードを見てください。 – hpaulj