| 函数 | 功能说明 | 示例代码 | 示例输出 |
| np.sort(x) | 返回排序后的副本 | np.sort([3, 1, 2]) | [1 2 3] |
| x.sort() | 原地排序(修改原数组) | arr = np.array([3,1,2]); arr.sort() | arr 变为 [1, 2, 3] |
| np.argsort(x) | 返回排序后的索引 | np.argsort([3, 1, 2]) | [1, 2, 0] |
| np.lexsort(keys) | 多键排序(按最后一列优先) | np.lexsort(([2,1,3], [3,1,2])) | [1, 0, 2] |
ndarray.sort():就地排序(直接修改原数组)。
axis:指定排序的轴。默认值为 -1,表示沿着最后一个轴进行排序。在二维数组中,axis = 0 表示按列排序,axis = 1 表示按行排序。
在 NumPy 中,轴是对数组维度的一种抽象描述。对于多维数组,每个维度都对应一个轴,轴的编号从 0 开始。对于二维数组,它有两个轴:
轴 0:代表垂直方向,也就是行的方向。可以把二维数组想象成一个表格,轴 0 就像是表格中从上到下的行索引方向对列数据排序,所以axis=0表示按列排序。
轴 1:代表水平方向,也就是列的方向。就像是表格中从左到右的列索引方向对行数据进行排序,所以axis=1表示按行排序。
arr1 = np.random.randint(0, 10, (3, 3))
print(arr1)
arr1.sort()
print(arr1)
arr1.sort(axis=0)
print(arr1)
arr1 = np.random.randint(0, 10, (3, 3))
print(arr1)
print(np.sort(arr1))
2.3.6 去重函数
| 函数 | 功能说明 | 示例代码 | 示例输出 |
| np.unique(x) | 返回唯一值并排序 | np.unique([2, 1, 2, 3, 1]) | [1 2 3] |
| np.in1d(a, b) | 检查 a 的元素是否在 b 中存在 | np.in1d([1, 2, 3], [2, 4]) | [False, True, False] |
np.unique():计算唯一值并返回有序结果。
arr1 = np.random.randint(0, 5, (3, 3))
print(arr1)
print(np.unique(arr1))
2.3.7 其他实用函数
| 函数 | 功能说明 | 示例代码 | 示例输出 |
| np.concatenate((a, b)) | 数组拼接 | np.concatenate(([1,2], [3,4])) | [1, 2, 3, 4] |
| np.split(x, indices) | 分割数组 | np.split([1,2,3,4], [2]) | [array([1,2]), array([3,4])] |
| np.reshape(x, shape) | 调整数组形状 | np.reshape([1,2,3,4], (2,2)) | [[1, 2], [3, 4]] |
| np.copy(x) | 创建数组的深拷贝 | b = np.copy(a) | b 与原数组 a 独立 |
| np.isnan(x) | 检测 NaN 值 | np.isnan([1, np.nan, 3]) | [False, True, False] |
2.3.8 章节小结
注意事项
- 原地操作与副本:
- x.sort() 直接修改原数组,而 np.sort(x) 返回副本。
- 缺失值处理:
- 使用 np.isnan() 检测 NaN,但统计函数默认忽略 NaN(需用 np.nanmean() 等专门函数)。
- 维度匹配:
- 拼接(concatenate)或分割(split)时需确保维度一致。
- 广播机制:
- 比较函数支持广播(如 np.greater(arr, 5) 判断每个元素是否大于5)。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











请登录后查看评论内容