如何在numpy数组上执行"in"操作?(如果给定的numpy数组中存在元素,则返回True)
对于字符串,列表和词典,功能直观易懂.
这是我在numpy数组上应用它时得到的结果
a
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]]])
b = [[3, 2, 0],
[0, 1, 1]]
b in a
True
#Aligned with the expectation
c = [[300, 200, 0],
[0, 100, 100]]
c in a
True
#Not quite what I expected
Run Code Online (Sandbox Code Playgroud) 我正在尝试检查一维 numpy 数组是否是更大的二维数组的一部分。我可以用很多 for 循环来做到这一点,但我想有一种更 Pythonic 的方式来做到这一点。
我不得不远的尝试:
1darray = np.array([0,0,0])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]])
1darray in 2darray
Run Code Online (Sandbox Code Playgroud)
但是此代码返回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
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助,谢谢!