numpy.in1d

numpy.in1d(ar1, ar2, assume_unique=False, invert=False)[源代码]

测试一维数组的每个元素是否也存在于第二个数组中。

返回与相同长度的布尔数组 ar1 如果一个元素 ar1 是在 ar2 否则就错了。

我们建议使用 isin 而不是 in1d 新代码。

参数
ar1(m,)数组

输入数组。

ar2array_like

用于测试的每个值 ar1 .

assume_unique可选的布尔

如果为真,则假定输入数组都是唯一的,这可以加快计算速度。默认值为假。

invert可选的布尔

如果为true,则返回的数组中的值将反转(即,如果元素为 ar1 是在 ar2 否则为真)。默认值为假。 np.in1d(a, b, invert=True) 相当于(但比) np.invert(in1d(a, b)) .

1.8.0 新版功能.

返回
in1d(m,)天拉,布尔

价值观 ar1[in1d]ar2 .

参见

isin

保留ar1形状的此函数的版本。

numpy.lib.arraysetops

具有许多其他函数的模块,用于对数组执行集合操作。

笔记

in1d 可以被视为python关键字的元素函数版本 in ,对于一维序列。 in1d(a, b) 大致相当于 np.array([item in b for item in a]) . 然而,如果 ar2 是一个集合或类似(非序列)容器:as ar2 在这些情况下转换为数组 asarray(ar2) 是对象数组,而不是所包含值的预期数组。

1.4.0 新版功能.

实例

>>> test = np.array([0, 1, 2, 5, 0])
>>> states = [0, 2]
>>> mask = np.in1d(test, states)
>>> mask
array([ True, False,  True, False,  True])
>>> test[mask]
array([0, 2, 0])
>>> mask = np.in1d(test, states, invert=True)
>>> mask
array([False,  True, False,  True, False])
>>> test[mask]
array([1, 5])