numpy.
in1d
测试一维数组的每个元素是否也存在于第二个数组中。
返回与相同长度的布尔数组 ar1 如果一个元素 ar1 是在 ar2 否则就错了。
我们建议使用 isin 而不是 in1d 新代码。
isin
输入数组。
用于测试的每个值 ar1 .
如果为真,则假定输入数组都是唯一的,这可以加快计算速度。默认值为假。
如果为true,则返回的数组中的值将反转(即,如果元素为 ar1 是在 ar2 否则为真)。默认值为假。 np.in1d(a, b, invert=True) 相当于(但比) np.invert(in1d(a, b)) .
np.in1d(a, b, invert=True)
np.invert(in1d(a, b))
1.8.0 新版功能.
价值观 ar1[in1d] 在 ar2 .
参见
保留ar1形状的此函数的版本。
numpy.lib.arraysetops
具有许多其他函数的模块,用于对数组执行集合操作。
笔记
in1d 可以被视为python关键字的元素函数版本 in ,对于一维序列。 in1d(a, b) 大致相当于 np.array([item in b for item in a]) . 然而,如果 ar2 是一个集合或类似(非序列)容器:as ar2 在这些情况下转换为数组 asarray(ar2) 是对象数组,而不是所包含值的预期数组。
in1d(a, b)
np.array([item in b for item in a])
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])