本章节所有的函数是针对一维数组设计的,所以名字后都带有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同意引用。