np.argsort怎么用
时间: 2023-08-08 20:10:15 浏览: 82
`numpy.argsort()` 函数是用来返回数组中的元素排序后的索引,这个函数的使用方法如下:
```python
numpy.argsort(a, axis=-1, kind=None, order=None)
```
其中,`a` 表示需要排序的数组,`axis` 表示需要排序的轴,`kind` 表示排序算法的种类,`order` 表示按照某个字段进行排序。
下面是一些示例:
```python
import numpy as np
# 一维数组排序
a = np.array([3, 1, 2])
print(np.argsort(a)) # 输出 [1 2 0]
# 二维数组排序
b = np.array([[3, 1, 2], [4, 2, 5]])
print(np.argsort(b)) # 输出 [[1 2 0]
# [1 0 2]]
# 按照行进行排序
c = np.array([[3, 1, 2], [4, 2, 5]])
print(np.argsort(c, axis=1)) # 输出 [[1 2 0]
# [1 0 2]]
# 按照字段进行排序
dt = np.dtype([('name', 'S10'), ('age', int)])
a = np.array([("zhangsan", 20), ("lisi", 25), ("wangwu", 15)], dtype=dt)
print(np.argsort(a, order='age')) # 输出 [2 0 1]
```
在上面的示例中,`np.argsort()` 函数返回的是原数组元素排序后的索引。比如,数组 `[3, 1, 2]` 排序后变成 `[1, 2, 3]`,则 `np.argsort([3, 1, 2])` 的输出是 `array([1, 2, 0])`,表示原数组中第二个元素(下标为 1)排序后排在第一个位置,第三个元素(下标为 2)排序后排在第二个位置,第一个元素(下标为 0)排序后排在第三个位置。
阅读全文