赞
踩
python的numpy库的intersect1d(x,y)函数,计算x和y的公共元素,并返回去重后的有序结果。相当于求两个数组中的交集,并且进行去重和排序。
用法
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
描述
numpy.intersect1()查找两个数组的公共元素,并且返回去重后的有序结果。
入参
ar1,ar2:必选,列表、元组、数组;如果是多维则自动转一维数组;
assume_unique:可选,bool,默认False,若为True则可以加快计算素材,此时ar1和ar2需为元素唯一的数组,否则结果不会去重;
return_indices:可选,bool,默认False,若为True则返回公共元素在ar1和ar2的索引,如果存在多个相同的值,则返回第一个值查询的索引。
numpy. intersect1d()的入参ar1和ar2,为必选入参,可以为数组、列表、元组。如果是多维数组,将会转换为一维数组后,进行处理。
>>> import numpy as np
# intersect1d()返回两个数组的公共元素,并且去重和排序
# 入参ar1/ar2为列表
>>> np.intersect1d([1,2,3,5,2],[6,5,2,1,5])
array([1, 2, 5])
# 入参ar1/ar2为元组
>>> np.intersect1d((1,2,3,5,2),(6,5,2,1,5))
array([1, 2, 5])
# 入参ar1/ar2为数组
>>> np.intersect1d(np.array((1,2,3,5,2)),np.array((6,5,2,1,5)))
array([1, 2, 5])
# 入参ar1/ar2为二维数组转为一维数组,再求公共元素并去重排序
>>> np.intersect1d([[3,5,2,6],[0,2,5,8]],[[1,3,5,9],[0,2,6,8]])
array([0, 2, 3, 5, 6, 8])
numpy. intersect1d()的入参assume_unique,为可选入参,布尔类型,默认为False。如果为True可以加快计算速度,并且需要ar1和ar2的元素不重复,否则找到的公共元素会存在重复元素的结果。
>>> import numpy as np
# 入参ar1/ar2有重复元素2和5,assume_unique为True,结果不去重
>>> np.intersect1d([1,2,3,5,2],[6,5,2,1,5],True)
array([1, 2, 2, 5, 5])
>>> np.intersect1d([1,2,3,5,2],[6,5,2,1,5],False)
array([1, 2, 5])
# 入参ar1/ar2无重复元素2和5,assume_unique为True,结果元素不重复
>>> np.intersect1d([1,2,3,5],[6,2,1,5],True)
array([1, 2, 5])
numpy. intersect1d()的入参return_indices,为可选入参,布尔类型,默认为False。若为True,返回公共元素在两个数组ar1和ar2的索引值,若存在多个相同的值,返回第1次出现的索引。
>>> import numpy as np
# return_indices=True,则返回公共元素在两个数组ar1和ar2的索引
# 多个相同值,则返回第一次出现的索引
>>> np.intersect1d([1,2,3,5,2],[6,5,2,1,5],return_indices=True)
(array([1, 2, 5]), array([0, 1, 3], dtype=int64), array([3, 2, 1], dtype=int64))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。