python中numpy的setdiff1d()的用法

查看numpy.setdiff1d()函数原型:

setdiff1d(ar1, ar2, assume_unique=False)

函数作用:

setdiff1d的作用是求两个数组的集合差。返回' ar1 '中不在' ar2 '中的唯一值。

=============================================================

参数解释:

ar1:输入数组

ar2:输入比较数组

assume_unique:如果为True,则假设输入数组的元素都是惟一的,可以加快计算速度,不会去掉数组ar1中重复的元素,也不进行排序。如果为False,函数进行去重操作,还会对元素排序,将会降低程序效率,assume_unique的值默认是false。

=============================================================

函数的返回值:

返回在' ar1 '中没有在' ar2 '中的数组元素。当' assume_unique=False '时,返回的元素是去重的排序的,如果为True,返回的是不排序,不去重的。

造成这个的原因是setdiff1d()函数去重时使用了numpy中的unique()函数,unique()的返回值是去重的,排序的。

=============================================================

例子:

import numpy as np
a = np.array([2, 2, 1, 4, 3])
b = np.array([3, 4, 5, 6])

# assume_unique默认值是False,去掉ar1中重复的2
print(np.setdiff1d(a, b))

# 将assume_unique的值设为True,不进行去重操作
print(np.setdiff1d(a, b, assume_unique=True))

输出:

[1 2]
[2 2 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunsir_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值