检查数组是否是较大数组的一部分



我正在尝试检查一维数字数组是否是更大的二维数组的一部分。我可以用许多 for 循环来做到这一点,但我想有一种更 pythonic 的方法可以做到这一点。

我必须做的尝试:

1darray = np.array([0,0,0])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]]) 
1darray in 2darray 

但是此代码返回一个 True,只要 1darray 中的一个元素出现在 2darray 中的某个位置。但是我想检查整个数组是否是较大数组中的一行,所以我希望这段代码返回 False,而我希望这段代码返回 True

1darray = np.array([0,0,1])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]]) 
1darray in 2darray 

我将不胜感激任何帮助,谢谢!

您可以使用

any()all()函数来实现此目的。

>>> a=np.array([0,0,0])
>>> b=np.array([[0,0,1],[0,1,0],[1,0,0]])
>>> (a == b).all(axis=1).any()
False
>>> a=np.array([0,0,1])
>>> b=np.array([[0,0,1],[0,1,0],[1,0,0]])
>>> (a == b).all(axis=1).any()
True

最新更新