numpy中sort的用法
时间: 2024-10-29 12:06:58 浏览: 16
在NumPy库中,`numpy.sort()`函数用于对数组进行排序。NumPy中的数组操作通常是针对整个数组进行,而不是像Python列表那样逐个元素处理。以下是`numpy.sort()`的基本用法:
1. **基本排序**:
```python
import numpy as np
arr = np.array([5, 2, 8, 1])
sorted_arr = np.sort(arr)
print(sorted_arr) # 输出: [1 2 5 8]
```
这里对数组进行了升序排列,并返回了一个新的排序后的数组。
2. **轴方向排序**:
```python
arr_2d = np.array([[5, 2], [8, 1]])
sorted_arr_2d = np.sort(arr_2d, axis=0) # 沿着行排序
sorted_arr_2d = np.sort(arr_2d, axis=1) # 沿着列排序
```
可以指定`axis`参数为0(表示按行)或1(表示按列)来进行排序。
3. **稳定性**:
`numpy.sort()`不是稳定的排序方法,如果数组中有相同的值,它们之间的相对位置可能会改变。如果你需要稳定性,应该考虑使用其他排序方法,比如`np.argsort()`。
4. **自定义排序规则**:
类似于Python列表的`key`参数,`numpy.sort()`也可以通过`kind`参数和`order`关键字参数来指定排序类型(如'quicksort'、'mergesort'或'diff'),以及选择字段进行排序。
```python
arr = np.array([(2, 'b'), (1, 'a'), (2, 'c')])
sorted_arr = np.sort(arr, order='f') # 按第一个元素排序,f代表数值字段
```
阅读全文