python中isin函数_Python numpy.isin函数方法的使用

numpy.isin

numpy.isin(element, test_elements, assume_unique=False, invert=False)     [source]

计算test_elements中的元素,仅在element上传递。 返回与元素具有相同形状的布尔数组,如果元素的元素在test_elements中,则返回True,否则返回False。参数 :element :array_like

输入数组。

test_elements :array_like

用于测试每个元素值的值。

如果它是array或array_like,则将其展平。

有关非类数组参数的行为,请参见注释。

assume_unique :bool, 可选

如果为True,则假定输入数组都是唯一的,

这可以加快计算速度。 默认值为False。

invert :bool, 可选

如果为True,则返回数组中的值将被反转,

就像计算元素不在test_elements中一样。

默认值为False。np.isin(a,b,invert = True)

等效于(但比更快)np.invert(np.isin(a,b))。

返回值 :isin :ndarray, bool

具有与元素相同的形状。 值element [isin]在test_elements中。

Notes

isin是python关键字in的元素明智函数版本。isin(a, b)大致相当于np.array([item in b for item ina])如果a和b是1-D序列。

如果元素和test_elements还没有被转换为数组,那么它们将被转换为数组。如果test_elements是一个集合(或其他非序列集合),那么它将被转换为一个只有一个元素的对象数组,而不是test_elements中包含的值数组。这是数组构造函数处理非序列集合方式的结果。将集合转换为列表通常会得到所需的行为。

新版本1.13.0。

例子>>> element = 2*np.arange(4).reshape((2, 2))

>>> element

array([[0, 2],

[4, 6]])

>>> test_elements = [1, 2, 4, 8]

>>> mask = np.isin(element, test_elements)

>>> mask

array([[False, True],

[ True, False]])

>>> element[mask]

array([2, 4])

可以使用非零值获取匹配值的索引:>>> np.nonzero(mask)

(array([0, 1]), array([1, 0]))

测试也可以颠倒:>>> mask = np.isin(element, test_elements, invert=True)

>>> mask

array([[ True, False],

[False, True]])

>>> element[mask]

array([0, 6])

由于array的处理方式,以下内容无法按预期工作:>>> test_set = {1, 2, 4, 8}

>>> np.isin(element, test_set)

array([[False, False],

[False, False]])

将集合转换为列表可得到预期结果:>>> np.isin(element, list(test_set))

array([[False, True],

[ True, False]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值