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

新手上路,请多包涵

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

 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)

将打印为真。我不明白为什么这样做…是因为 0 在列表中吗?如果整个数组都在列表中,我想要一些只打印 true 的东西。

我想要我的清单

[[0,1],
[0,2]]

并且仅当 [0,x] (相同形状相同顺序)在其中时才返回 true。

原文由 David Hambraeus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

你可以这样做:

 ([0, 40] == a).all(1).any()

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

原文由 John Zwinck 发布,翻译遵循 CC BY-SA 4.0 许可协议

此代码可以帮助您:

 my_list = [0, 40]
print(all(b in a for b in my_list))

原文由 Amir Dezhkam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题