我正在尝试检查一维数字数组是否是更大的二维数组的一部分。我可以用许多 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