如何检查一个numpy数组是否包含数字列表?

时间:2019-04-01 14:43:58

标签: python arrays numpy multidimensional-array

我有一个带有另一个数组的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、4、5、6、7、8、9]。 感谢您抽出宝贵的时间阅读并尝试提供帮助。

1 个答案:

答案 0 :(得分:3)

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

如果您想要False和True,则需要逐元素比较。通过列表理解来完成:

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

给出[False, True]

all()之所以存在,是因为仅检查array2 == arr就会为每个条目提供一个True / False列表,但我们希望完全匹配