Python NumPy 数组 排序

前言

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 数组排序。

1、数组排序

NumPy ndarray对象具有一个名为sort()的函数,该函数将对指定的数组进行排序。

例如:

排序数组:

import numpy as np

arr = np.array([103, 211, 120, 911])

print(np.sort(arr))

上面代码运行结果为:

[103 120 211 911]

注意:此方法返回数组的副本,而原始数组保持不变。

还可以对字符串数组或任何其他数据类型进行排序:

例如:

按字母顺序对数组排序:

import numpy as np

arr = np.array(['ban', 'cpu', 'app'])

print(np.sort(arr))

上面代码运行结果为:

['app' 'ban' 'cpu']

例如:

对布尔数组进行排序:

import numpy as np

arr = np.array([True, False, True])

print(np.sort(arr))

上面代码运行结果为:

[False  True  True]

2、排序 2-D Array

如果在二维数组上使用sort()方法,则两个数组都将被排序:

例如:

排序二维数组:

import numpy as np

arr = np.array([[3, 12, 4], [5, 10, 1]])
arr1 = np.array([[3, 12, 4, 5, 10, 1]])

print(np.sort(arr))
print(np.sort(arr1))

上面代码运行结果为:

[[ 3  4 12]
 [ 1  5 10]]
[[ 1  3  4  5 10 12]]

NumPy 提供了 `numpy.sort` 函数用于对数组进行排序。该函数可以沿指定轴对标量数据进行升序排列,默认情况下会返回一个新的已排序数组,而不会修改原始数组。 以下是关于 NumPy 数组排序的一些关键点: 1. **默认功能** - 使用 `np.sort(arr)` 可以按行或列对数组元素进行排序。 - 默认按照最后一维(即最后一个轴)排序,并生成新的数组。 2. **控制排序方向和维度** - 参数 `axis` 决定在哪一维度上应用排序算法。例如: - 如果设置 `axis=0` ,则沿着每一列表格内进行垂直排序; - 而当设成 `axis=1` 时,则水平地逐行列出并处理其内容项之间的相对顺序位置变化情况。 - 若要获取降序结果,可在之后通过反转操作达成目标如:`arr[::-1]` 3. **稳定性和性能考虑** - 支持多种内部使用的高效排序机制包括但不限于冒泡法、快速选择等;用户也可以自定义比较规则满足特定需求下的个性化定制化服务要求等等哦~ 示例代码片段展示如何运用此功能完成基本任务演示效果如下所示: ```python import numpy as np # 创建测试矩阵 array = np.array([[4, 1], [7, 6]]) print("原数组:") print(array) sorted_array_axis_0 = np.sort(array, axis=0) # 沿着第一维(纵轴)排序 print("\n沿着第一维排序后的数组:") print(sorted_array_axis_0) sorted_array_axis_none = np.sort(array, axis=None) # 展平后再整体排序 print("\n展平后排序的结果:") print(sorted_array_axis_none) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值