python编程入门----numpy排序,条件选择函数

参考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.]
    原文作者:python入门
    原文地址: https://my.oschina.net/u/3127014/blog/2967623
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞