NumPy 检查二维数组是否是二维数组的子集

ede*_*esz 2 python arrays numpy python-2.7

我想检查数组是否是数组b的子集a。子集我的意思是我想检查是否ba.

这是我的代码:

import numpy as np
a = np.array([[1,7,9],[8,3,12],[101,-74,0.5]])
b = np.array([[1,9],[8,12],[101,0.5]])
print a
print b
Run Code Online (Sandbox Code Playgroud)

这是输出

数组 a

[[   1.     7.     9. ]
 [   8.     3.    12. ]
 [ 101.   -74.     0.5]]
Run Code Online (Sandbox Code Playgroud)

数组 b

[[   1.     9. ]
 [   8.    12. ]
 [ 101.     0.5]]
Run Code Online (Sandbox Code Playgroud)

有没有办法检查 b 是否是 a 的子集?

编辑:附加信息:

根据下面的评论,我应该澄清一下,我需要知道数组 b 是否是数组 a 的子集 - 如果子集中缺少一个元素,那么我正在寻找一种方法来检查这一点。我不需要指示元素在子集中的哪个位置丢失,而只是知道它丢失了。如果可以提供有关缺失元素的其他信息,那么这将是一个奖励,但这不是硬性要求。很抱歉没有早点解决这个问题。

我将问题表述为子集的理由是,如果一个数组是另一个数组的子集,那么这对我来说意味着子集数组的所有值都存在于更大的数组中。

Bi *_*ico 5

我想你想要numpy.in1d,像这样:

import numpy as np
a = np.array([[1,7,9],[8,3,12],[101,-74,0.5]])
b = np.array([[1,9],[8,12],[101,0.5]])

np.in1d(b.ravel(), a.ravel()).all()
Run Code Online (Sandbox Code Playgroud)