龙空技术网

Python机器学习(四十七)NumPy 排序、查找、计数

极目馆主 73

前言:

此时我们对“c语言寻找单词并计数”大约比较关切,大家都需要分析一些“c语言寻找单词并计数”的相关内容。那么小编同时在网上网罗了一些关于“c语言寻找单词并计数””的相关知识,希望大家能喜欢,姐妹们快快来了解一下吧!

NumPy中提供了各种排序相关的函数。这些排序函数实现了不同的排序算法,每个算法的特点是执行速度、最坏情况性能、所需的工作空间和算法的稳定性。下表为三种排序算法的比较。

种类

速度

最差情况

工作区

稳定性

‘quicksort’

1

O(n^2)

0

no

‘mergesort’

2

O(n*log(n))

~n/2

yes

‘heapsort’

3

O(n*log(n))

0

no

numpy.sort()

sort()对数组进行排序,返回排好序的数组副本。可以指定轴方向。

函数语法:

numpy.sort(a, axis, kind, order)

参数

a 待排序数组axis 指定排序的轴。如果没有,按最后一个轴排序。kind 默认是‘quicksort’order 指定排序字段

示例

import numpy as np  a = np.array([[3,7],[9,1]]) print ('数组:' )print (a) print ('\n')print ('排序:' )print (np.sort(a)) print ('\n') print ('轴 0 排序:') print (np.sort(a, axis = 0)) print ('\n')  # 排序函数中的顺序参数dt = np.dtype([('name', 'S10'),('age', int)]) a = np.array([("kevin", 21),("peter",25),("tony", 17), ("mike",27)], dtype = dt) print ('数组:') print (a) print ('\n')  print ('按 name 排序:') print (np.sort(a, order = 'name'))

输出

import numpy as np  a = np.array([[3,7],[9,1]]) print ('数组:' )print (a) print ('\n')print ('排序:' )print (np.sort(a)) print ('\n') print ('轴 0 排序:') print (np.sort(a, axis = 0)) print ('\n')  # 排序函数中的顺序参数dt = np.dtype([('name', 'S10'),('age', int)]) a = np.array([("kevin", 21),("peter",25),("tony", 17), ("mike",27)], dtype = dt) print ('数组:') print (a) print ('\n')  print ('按 name 排序:') print (np.sort(a, order = 'name'))
numpy.argsort()

该函数先对数组进行排序,然后提取排序后的数组索引,以数组形式返回,原数组不会被修改,通过索引可以得到排序结果。

示例

import numpy as np x = np.array([3, 1, 2]) print ('数组x:') print (x) print ('\n')  print ('将argsort()应用于x:') y = np.argsort(x) print (y) print ('\n')  print ('按排序顺序重建原始数组:' )print (x[y]) print ('\n')  print ('使用循环重构原始数组:') for i in y:    print (x[i])

输出

数组x:[3 1 2]将argsort()应用于x:[1 2 0]按排序顺序重建原始数组:[1 2 3]使用循环重构原始数组:1 2 3
numpy.lexsort()

用于对多个序列进行排序,类似于SQL中的ORDERBY多个字段:ORDER BY 字段1, 字段2, 字段3。可以想象成对电子表格进行排序,每一列代表一个序列,越后面的列优先级越高。

原数组不会被修改,该函数提取排序后的数组索引,以数组形式返回,通过索引可以得到排序结果。

示例

import numpy as np  a = np.array(['a','b','c','d','e'])  b = np.array([12, 90, 380, 12, 211])  ind = np.lexsort((a,b))  print("打印排序后的数组索引:")  print(ind)  print("使用索引对数组排序:")  for i in ind:      print(a[i],b[i])  

输出

打印排序后的数组索引:[0 3 1 4 2]使用索引对数组排序:a 12d 12b 90e 211c 380
numpy.argmax() 与 numpy.argmin()

这两个函数分别返回指定轴上,最大和最小元素的索引。

示例

import numpy as np a = np.array([[30,40,70],[80,20,10],[50,90,60]]) print ('数组:') print (a) print ('\n') print ('应用argmax()函数:') print (np.argmax(a, 0)) print ('\n')  print ('应用argmin()函数:') print (np.argmin(a, 0) ) print ('\n')  

输出

 数组:[[30 40 70] [80 20 10] [50 90 60]]应用argmax()函数:[1 2 0]应用argmin()函数:[0 1 1]
numpy.nonzero()

该函数返回数组中非零元素的索引。

示例

import numpy as np  b = np.array([12, 90, 380, 12, 211])  print("打印原始数组\n", b)  print ('\n') print("打印非零元素的位置")  print(b.nonzero())  

输出

打印原始数组 [ 12  90 380  12 211]打印非零元素的位置(array([0, 1, 2, 3, 4]),)
numpy.where()

该函数查找数组中符合条件的元素,返回其索引。

示例

import numpy as np  b = np.array([12, 90, 380, 12, 211])  print(np.where(b>12))  c = np.array([[20, 24],[21, 23]])  print(np.where(c>20))  

输出

(array([0, 1, 1]), array([1, 0, 1]))
numpy.extract()

该函数返回数组中符合条件的元素。

示例

import numpy as np  b = np.array([12, 90, 380, 12, 211])  print(np.extract(b>12, b))  c = np.array([[20, 24],[21, 23]])  print(np.extract(c>20, c))  

输出

[ 90 380 211][24 21 23]

标签: #c语言寻找单词并计数