数据处理离不开排序和集合操作,NumPy也提供了相应的操作方法或函数。
sort()方法可以实现ndarray的就地排序。
list.sort( key=None, reverse=False)
- key :主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse : 排序规则,reverse = True 降序, reverse = False 升序(默认)。
import numpy as np
arr = np.random.randn(10)
print(arr)
arr.sort()
print(arr)
如果操作的是多维数组,需要按照某个轴进行排序,则要指定轴的编号。
import numpy as np
arr = np.random.randn(3,4)
print(arr)
arr.sort(1)#每行按升序排列
print(arr)
NumPy提供的sort()函数(使用方式是np.sort(arr))也可以实现相同的功能,两者的区别是sort()方法(使用方式是arr.sort())是实现被操作数组的就地修改,而sort()函数返回的是一个副本。
NumPy提供的集合运算主要是针对一维ndarray。
- unique():唯一化
- intersect1d():交集
- union1d():并集
- setdiff1d():差集
unique()函数不仅会找出数组的唯一值,还会对结果进行排序:
import numpy as np
arr_int = np.array([3,4,5,8,4,3,2,1,6,10])
print(arr_int)
print(np.unique(arr_int))
等效的纯Python代码需要调用两个函数实现该操作:
print(sorted(set(arr_int)))
交集、并集与差集操作:
arr_int2 = np.array([1,2,33,4,6,5])#新建一个一维数组
print(np.intersect1d(arr_int,arr_int2))#交集
print(np.union1d(arr_int,arr_int2))#并集
print(np.setdiff1d(arr_int,arr_int2))#差集
集合操作后的结果都自动进行了排序。