欢迎使用CSDN-markdown编辑器
来源:互联网 发布:卓讯云客宝mac破解版 编辑:程序博客网 时间:2024/06/01 23:14
简要说明
argsort(a, axis=-1, kind='quicksort', order=None) 按照kin关键字指定的排序方式,对原数组按照从小到大的顺序进行排序,得到一个新的数组,将该数组中每个元素在原数组中的索引值代替该元素得到
例子:
x = np.array(np.random.randint(1,100,6))# x: array([15, 16, 18, 7, 83, 53])y = np.argsort(x)# 输出array([3, 0, 1, 2, 5, 4], dtype=int64)y_1 = sorted(x)# [7, 15, 16, 18, 53, 83]
解释
可以看出,7在x中的索引值为3, 15在x中的索引值为0, 16在x中的索引值为1 简单的等价表达式:
ls = []x_1 = list(x)for i in y_1: ls.append(x.index(i))
参数解释
axis指定排序的轴,默认axis=-1为最后一个轴 kind为排序方法, {'quicksort', 'mergesort', 'heapsort'}默认为快速排序
一般只关注参数axis,二维情况下,默认按行排序,若指定axis=0,则为按列排序关于axis更详细的解释
看一些例子
`>>> x = np.array([[0, 3], [2, 2]]) >>> x array([[0, 3], [2, 2]]) # 按列排序 >>> np.argsort(x, axis=0) array([[0, 1], [1, 0]]) # 按行排序 >>> np.argsort(x, axis=1) array([[0, 1], [0, 1]]) `
# 找出数组中最大的3个数,并保持原来的顺序 x = np.array(np.random.randint(1,100,10)) # array([78, 68, 79, 69, 77, 49, 28, 73, 69, 76]) x[sorted(np.argsort(x)[-3:])] # array([78, 79, 76]) # 首先利用argsort()将元素排序,利用切片,得到最大的3个元素的索引值,在将索引值排序,利用numpy数组索引方式取出所要求的值
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 词典结构
- hdu 5726 GCD RMQ+二分枚举
- Android的app为什么我通过adb删除了数据库之后,为什么创建数据库没反应
- 微信支付回调node.js版数据解析问题
- ThreadLocal
- 欢迎使用CSDN-markdown编辑器
- Java实现设计模式之策略模式
- HTML与XHTML
- 1005. 继续(3n+1)猜想 (25)
- hnust
- 使用jxl读取模板文件,写入数据并导出excel
- Android 组件之 SeekBar
- 开通csdn博客----2017.5.31
- [BZOJ 2125]最短路---仙人掌图+Tarjan缩环+LCA