时间:2021-05-23
numpy.sort()函数
该函数提供了多种排序功能,支持归并排序,堆排序,快速排序等多种排序算法
使用numpy.sort()方法的格式为:
numpy.sort(a,axis,kind,order)
下面通过一个实例来具体了解numpy.sort()函数的用法
假设我们有一组用户信息,包含用户的用户名以及用户的年龄,我们按照用户的年龄来进行排序
运行结果:
[(b'adm', 19) (b'ade', 23) (b'wan', 23)]
Process finished with exit code 0
numpy.argsort()函数
numpy.argsort()函数返回的时从小到大的元素的索引
可以通过以下的实例更好的理解
使用argsort()方法返回索引并重构数组
运行结果:
返回从小到大的索引
[3 0 4 1 2]
以索引对原数组排序
[ 2 3 5 8 11]
重构原数组
2,3,5,8,11,
Process finished with exit code 0
numpy.lexsort()函数
numpy.sort()函数可对于多个序列进行排序,例如我们在比较成绩的时候先比较总成绩,由后列到前列的优先顺序进行比较,这时就用到了lexsort()方法
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])运行结果:
使用这个索引来获取排序后的数据:
['amar, f.y.', 'anil, s.y.', 'raju, f.y.', 'ravi, s.y.']
Process finished with exit code 0
numpy.partition()函数
numpy.partition()叫做分区排序,可以制定一个数来对数组进行分区。
格式如下:
实例:实现将数组中比7小的元素放到前面,比7大的放后面
# partition分区排序a=np.array([2,3,9,1,0,7,23,13])print(np.partition(a,7))运行结果:
[ 0 1 2 3 7 9 13 23]
Process finished with exit code 0
实例:实现将数组中比7小的元素放到前面,比10大的放后面,7-10之间的元素放中间
partition分区排序
运行结果
[ 1 0 2 3 5 6 7 9 10 12 13 23 27]
[ 0 1 2 6 5 3 7 9 10 12 23 13 27]
Process finished with exit code 0
注意:(7,10)中10的位置,数值不能超过数组长度。
numpy.nonzero()函数
返回输入数组中非零元素的索引
a = np.array([[30,40,0],[0,20,10],[50,0,60]]) print ('我们的数组是:')print (a)print ('\n')print ('调用 nonzero() 函数:')print (np.nonzero (a))运行结果:
我们的数组是:
[[30 40 0]
[ 0 20 10]
[50 0 60]]
调用 nonzero() 函数:
(array([0, 0, 1, 1, 2, 2]), array([0, 1, 1, 2, 0, 2]))
Process finished with exit code 0
numpy.where()函数
返回满足输入条件的索引
where()函数的使用b = np.array([2, 1, 3, 0, 4, 7, 23, 13, 27])y = np.where(b > 10)print(y)print('利用索引得到数组中的元素')print(b[y])运行结果:
(array([6, 7, 8], dtype=int64),)
利用索引得到数组中的元素
[23 13 27]
Process finished with exit code 0
numpy.extract()函数
numpy.extract()函数实现的是返回自定义条件的元素
# extract()自定义元素筛选b = np.array([2, 1, 3, 0, 4, 7, 23, 13, 27])con = np.mod(b, 2) == 0y = np.extract(con, b)print(a[y])运行结果:
[9 2 6]
Process finished with exit code 0
其它排序函数
numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引。numpy.sort_complex(a)函数实现对复数按照先实部后虚部的顺序进行排序。numpy.argpartition(a, kth[, axis, kind, order])函数实现通过指定关键字沿着指定的轴对数组进行分区。
下面举一个复数排序的例子:
运行结果:
[1.+2.j 2.-1.j 3.-3.j 3.-2.j 3.+5.j]
Process finished with exit code 0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这里有numpy数组的相关介绍排序numpy与python列表内置的方法类似,也可通过sort方法进行排序。用法如下:In[1]:importnumpyasnp
概述argsort()函数在模块numpy.core.fromnumeric中。在python中排序数组,或者获取排序顺序的时候,我们常常使用numpy包的ar
如何根据二维数组中的某一行或者某一列排序?假设data是一个numpy.array类型的二维数组,可以利用numpy中的argsort函数进行实现,代码实例如下
目前我的工作是将NumPy引入到Pyston中(一款Dropbox实现的Python编译器/解释器)。在工作过程中,我深入接触了NumPy源码,了解其实现并提交
本文实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序首先是算法实现文件Sort.h,代码如下:/**