如何检查数组是否在Python中的另一个数组中

Dav*_*eus 5 python numpy python-3.x

我认为这in对此有好处,但它在不应该的地方返回.例如:

import numpy as np

a = np.array([])

for i in range(3):
    for j in range(3):
        a = np.append(a,[i,j])
a = np.reshape(a,(9,2))
print(a)

print([[0,40]] in a)
Run Code Online (Sandbox Code Playgroud)

将打印为真.我无法理解为什么会这样做...是因为0在列表中?如果整个数组都在列表中,我想要只打印一些东西.

我想要我的清单

[[0,1],
[0,2]]
Run Code Online (Sandbox Code Playgroud)

并且只有在其中完全[0,x](相同形状的相同顺序)时才返回true .

Joh*_*nck 5

你可以这样做:

([0, 40] == a).all(1).any()
Run Code Online (Sandbox Code Playgroud)

第一步是计算匹配位置的二维布尔数组。然后找到所有元素都为真的行。然后检查是否有任何行完全匹配。