numpy.in1d¶
-
numpy.
in1d
(ar1, ar2, assume_unique=False, invert=False)[source]¶ 测试1-D数组的每个元素是否也存在于第二个数组中。
返回与ar1相同的长度为True的布尔数组,其中ar1的元素在ar2中为真,否则为False。
参数: ar1:(M,)array_like
输入数组。
ar2:array_like
用于测试ar1的每个值的值。
assume_unique:bool,可选
如果为真,则输入数组都被假定为唯一的,这可以加速计算。默认值为False。
反转:bool,可选
如果为True,则返回的数组中的值被反转(即,其中ar1的元素在ar2中为False,否则为True)。默认值为False。
np.in1d(a, b, invert=True)
is equivalent to (but is faster than)np.invert(in1d(a, b))
.版本1.8.0中的新功能。
返回: in1d:(M,)ndarray,bool
值ar1 [in1d]在ar2中。
也可以看看
numpy.lib.arraysetops
- 具有用于对数组执行设置操作的多个其他功能的模块。
笔记
in1d
可以被视为1-D序列中的中的python关键字的元素级函数版本。in1d(a, b)
is roughly equivalent tonp.array([item in b for item in a])
. 但是,如果ar2是一个集合或类似(非序列)容器,则此构思失败:Asar2
被转换为数组,在这些情况下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], dtype=bool) >>> test[mask] array([0, 2, 0]) >>> mask = np.in1d(test, states, invert=True) >>> mask array([False, True, False, True, False], dtype=bool) >>> test[mask] array([1, 5])