NumPy 教程 之 NumPy 排序、条件筛选函数 1

简介: NumPy提供了多种排序方法,包括快速排序、归并排序与堆排序等,每种方法在速度、最坏情况性能、工作空间及稳定性方面各有特点。`numpy.sort()`函数可返回数组排序副本,支持沿指定轴排序及字段排序。示例展示了如何对二维数组及含字段的数组进行排序操作。

NumPy 教程 之 NumPy 排序、条件筛选函数 1

NumPy 排序、条件筛选函数

NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。

种类 速度 最坏情况 工作空间 稳定性
'quicksort'(快速排序) 1 O(n^2) 0 否
'mergesort'(归并排序) 2 O(nlog(n)) ~n/2 是
'heapsort'(堆排序) 3 O(n
log(n)) 0 否

numpy.sort()

numpy.sort() 函数返回输入数组的排序副本。函数格式如下:

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

参数说明:

a: 要排序的数组
axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
kind: 默认为'quicksort'(快速排序)
order: 如果数组包含字段,则是要排序的字段

实例

import numpy as np

a = np.array([[3,7],[9,1]])
print ('我们的数组是:')
print (a)
print ('\n')
print ('调用 sort() 函数:')
print (np.sort(a))
print ('\n')
print ('按列排序:')
print (np.sort(a, axis = 0))
print ('\n')

在 sort 函数中排序字段

dt = np.dtype([('name', 'S10'),('age', int)])
a = np.array([("raju",21),("anil",25),("ravi", 17), ("amar",27)], dtype = dt)
print ('我们的数组是:')
print (a)
print ('\n')
print ('按 name 排序:')
print (np.sort(a, order = 'name'))

输出结果为:

我们的数组是:
[[3 7]
[9 1]]

调用 sort() 函数:
[[3 7]
[1 9]]

按列排序:
[[3 1]
[9 7]]

我们的数组是:
[(b'raju', 21) (b'anil', 25) (b'ravi', 17) (b'amar', 27)]

按 name 排序:
[(b'amar', 27) (b'anil', 25) (b'raju', 21) (b'ravi', 17)]

目录
相关文章
|
2月前
|
Python
NumPy 教程 之 NumPy 统计函数 10
NumPy统计函数,包括查找数组中的最小值、最大值、百分位数、标准差和方差等。方差表示样本值与平均值之差的平方的平均数,而标准差则是方差的平方根。例如,`np.var([1,2,3,4])` 的方差为 1.25。
99 48
|
2月前
|
数据处理 Python
Pandas快速统计重复值的2种方法
Pandas快速统计重复值的2种方法
98 1
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 8
NumPy提供了多种排序方法,包括快速排序、归并排序及堆排序,各有不同的速度、最坏情况性能、工作空间和稳定性特点。此外,NumPy还提供了`numpy.extract()`函数,可以根据特定条件从数组中抽取元素。例如,在一个3x3数组中,通过定义条件选择偶数元素,并使用该函数提取这些元素。示例输出为:[0., 2., 4., 6., 8.]。
24 8
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 7
NumPy提供了多种排序方法,包括快速排序、归并排序与堆排序,各有不同的速度、最坏情况性能、工作空间及稳定性特点。此外,`numpy.where()`函数能够返回满足特定条件的元素索引,例如在数组`x`中查找大于3的元素,并利用所得索引打印出符合条件的所有元素。此教程详细解释了不同排序算法的特点及其适用场景,并通过实例展示了`numpy.where()`函数的具体应用。
21 6
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 2
介绍NumPy` 中的排序方法与条件筛选函数。通过对比快速排序、归并排序及堆排序的速度、最坏情况性能、工作空间需求和稳定性,帮助读者选择合适的排序算法。此外,还深入讲解了 `numpy.argsort()` 的使用方法,并通过具体实例展示了如何利用该函数获取数组值从小到大的索引值,并据此重构原数组,使得其变为有序状态。对于学习 `NumPy` 排序功能来说,本教程提供了清晰且实用的指导。
31 7
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 5
NumPy中的排序方法及特性对比,包括快速排序、归并排序与堆排序的速度、最坏情况性能、工作空间及稳定性分析。并通过`numpy.argmax()`与`numpy.argmin()`函数演示了如何获取数组中最大值和最小值的索引,涵盖不同轴方向的操作,并提供了具体实例与输出结果,便于理解与实践。
23 4
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 6
NumPy中的排序方法及特性对比,包括快速排序、归并排序与堆排序的速度、最坏情况性能、工作空间和稳定性等差异。同时,通过实例展示了`numpy.nonzero()`函数的应用,该函数可返回数组中非零元素的索引。
16 2
|
3月前
|
存储 索引 Python
NumPy 教程 之 NumPy 统计函数 5
NumPy提供了多种统计函数,如`numpy.median()`用于计算数组元素的中位数。该函数可通过设置参数`axis`指定计算轴向,`out`指定结果存放位置,`overwrite_input`允许使用输入数组内存以提升性能,`keepdims`保持结果数组维度。示例展示了在不同轴向上调用`median()`的结果。
29 1
|
3月前
|
存储 数据处理 索引
NumPy 教程 之 NumPy 统计函数 1
这段内容介绍了 `NumPy` 中用于统计分析的基本函数,重点讲述了 `numpy.amin()` 和 `numpy.amax()` 的使用方法及参数含义,这两个函数分别用于计算数组中的最小值和最大值,提供了包括指定轴、输出位置在内的多种可选参数设置。这有助于用户更灵活地进行数据处理与分析。
30 1
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 3
本教程详细介绍了NumPy中的排序方法及条件筛选函数。NumPy提供了包括快速排序、归并排序和堆排序在内的多种排序算法,每种算法各有特点。此外,还介绍了`numpy.lexsort()`函数,它能对多个序列进行排序,适用于如小升初考试录取等场景。通过示例展示了如何使用该函数对姓名和年级数据进行排序。
16 0