https://github.com/numpy/numpy/blob/491f41acd2c6a0e7886662a2448b3d245ae432a9/numpy/core/src/multiarray/sequence.c#L29
equivalent to (self == el).any()
だそう。
==
の動作は
>>> a=numpy.array([[1,2],[3,4]]) # わかりやすいように質問とは異なります
>>> a
array([[1, 2],
[3, 4]])
>>> a == [1,2]
array([[ True, True],
[False, False]])
>>> a == [1,1]
array([[ True, False],
[False, False]])
>>> a == [1,4]
array([[ True, False],
[False, True]])
>>> a == [3,2]
array([[False, True],
[ True, False]])
こうなので、ここに一つでもTrueがあったらin
演算子はTrueになります。
欲しい動作は
==
を適用した結果に
- 横に見た時にすべてTrueなものが
- 1つでもあれば
という条件になるので、
>>> (a == [1,2]).all(axis=1) # 2. 横に見た時にすべてTrueか
array([ True, False])
>>> (a == [1,2]).all(axis=1).any() # 3. ↑の結果に一つでもTrueがあるか
True
かと。
python
1a = numpy.array([[1,1],[2,2]])
2if (a == [1,2]).all(axis=1).any():
3 print('ok')
出力なし
(問題はもっと明快な書き方がないのかということ)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/04 02:38