首页 > 解决方案 > 如何检查 numpy 数组是否包含数字列表?

问题描述

我有一个 numpy 数组,里面有另一个数组,我想知道如何检查另一个 numpy 数组(或列表)的所有值是否与第一个相同。

array1 = np.array([[11,3,4,6,7,8,9,1,2], [6,7,2,1,9,5,3,4,8]])
array2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

我试图用它来做,array2 in np.sort(array1)但它返回 True。

我想在数组 [11,3,4,6,7,8,9,1,2] 的第一个数组中获取 False,因为数字 5 不在其中,而在第二个数组 [1, 2, 3 中为 True , 4, 5, 6, 7, 8, 9]。感谢您花时间阅读并尝试提供帮助。

标签: pythonarraysnumpymultidimensional-array

解决方案


您当前正在检查是否有任何数组匹配。

如果你想要 False 和 True,你需要一个元素比较。通过列表理解完成:

[all(array2 == arr) for arr in np.sort(array1)]

这使[False, True]

之所以存在,all()是因为仅检查array2 == arr将为每个条目提供一个 True/False 列表,但我们想要一个完整的匹配


推荐阅读