关于numpy库的集合运算

数组的集合计算

本章节所有的函数是针对一维数组设计的,所以名字后都带有1d。

unique函数

用于找出数组中的唯一值并返回已排序的结果:

In [206]: names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])

In [207]: np.unique(names)
Out[207]: 
array(['Bob', 'Joe', 'Will'],
      dtype='

用纯python的代码进行唯一化处理:

In [210]: sorted(set(names))
Out[210]: ['Bob', 'Joe', 'Will']

intersect1d函数

用法相当于求两个数组的唯一化+求交集+排序函数:

import numpy as np
arrx = np.array([1,1,3,4,5,8,7,9])
arry = np.array([1,5,3,58,64,23,9])
np.intersect1d(arrx,arry)

array([1, 3, 5, 9])

union1d函数

用于计算两个函数的并集,唯一化并排序:

np.union1d(arrx,arry)

array([ 1,  3,  4,  5,  7,  8,  9, 23, 58, 64])

in1d函数

相当于纯python的in函数吧,前面的数组是否包含于后面的数组,返回布尔值:

np.in1d(arrx,arry)

array([ True,  True,  True, False,  True, False, False,  True])

返回的值是针对第一个参数的数组的,所以维数和第一个参数一致,布尔值与数组的元素位置也一一对应。

setdiff1d函数

集合的差,即元素存在于第一个函数不存在于第二个函数中

np.setdiff1d(arrx,arry)

array([4, 7, 8])

setxor1d函数

集合的对称差,即两个集合的交集的补集。和intersect1d函数构成两个函数的所有元素。简言之,就是两个数组中各自独自拥有的元素的集合。

np.setxor1d(arrx,arry)

array([ 4,  7,  8, 23, 58, 64])

没有什么难点就是记忆,多练多用。

文章代码引用自:《利用Python进行数据分析·第2版》第4章 NumPy基础:数组和矢量计算
作者:SeanCheney
感谢SeanCheney同意引用。

你可能感兴趣的:(关于numpy库的集合运算)