参考http://www.runoob.com/numpy/numpy-sort-search.html 的例子
1. 排序
- np.sort(a, axis, kind, order) #a为数组,axis是按照行或列取值,kind默认为’quicksort’(快速排序),还可以选’mergesort’(归并排序),’heapsort’(堆排序),order如果数组包含字段,则是要排序的字段(类似于结构体)
- np.argsort() #函数返回的是数组值从小到大的索引值。
- np.lexsort() #用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列
import numpy as np
nm = ('raju','anil','ravi','amar')
dv = ('f.y.', 's.y.', 's.y.', 'f.y.')
ind = np.lexsort((dv,nm))
print ('调用 lexsort() 函数:')
print (ind)
print ('\n')
print ('使用这个索引来获取排序后的数据:')
print ([nm[i] + ", " + dv[i] for i in ind])
- np.sort_complex() #对复数排序,先实部然后虚部
- partition(a, kth[, axis, kind, order]) #指定一个数然后对数组进行分区,arr[np.argpartition(arr, 2)[2]],找出数组中第三大的数**(用法高级,值得研究)**
2. 最值函数
- numpy.argmax() 和 numpy.argmin() #函数分别沿给定轴返回最大和最小元素的索引,当没有指定轴时,数组展开
- numpy.nonzero() #函数返回输入数组中非零元素的索引。
- numpy.where() #函数返回输入数组中满足给定条件的元素的索引。np.where(x > 3)
- numpy.extract() #函数根据某个条件从数组中抽取元素,返回满条件的元素。
import numpy as np
x = np.arange(9.).reshape(3, 3)
print ('我们的数组是:')
print (x)
# 定义条件, 选择偶数元素
condition = np.mod(x,2) == 0
print ('按元素的条件值:')
print (condition)
print ('使用条件提取元素:')
print (np.extract(condition, x))
我们的数组是:
[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
按元素的条件值:
[[ True False True]
[False True False]
[ True False True]]
使用条件提取元素:
[0. 2. 4. 6. 8.]