找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2773|回复: 4

[求助] numpy array index的问题

1

主题

5

帖子

5

积分

贫民

积分
5
yoyoalphax 发表于 2017-12-27 16:07:25 | 显示全部楼层 |阅读模式
以下利用argsort进行逆排序出错,是不是numpy的bug?
d是正排序,正确。e是逆排序,错误。但为什么错不太明白。
  1. import numpy as np

  2. y = np.array(['51.032', '57.714', '56.901'])
  3. print(y)
  4. # ['51.032' '57.714' '56.901']

  5. b = np.argsort(y)  # asc-index
  6. print(b)
  7. # [0 2 1]

  8. c = y.shape[0]-1-np.argsort(y)  # desc-index
  9. print(c)
  10. # [2 0 1]

  11. d = y[b] # asc
  12. print(d)

  13. e = y[c] # desc - Fail
  14. print(e)
复制代码


回复

使用道具 举报

3

主题

8

帖子

8

积分

贫民

积分
8
Sugarcane 发表于 2017-12-27 20:35:51 | 显示全部楼层
不知道是否是你所想!
import numpy as np

y = np.array([51.032, 57.714, 56.901])
# asc-index
print(y[np.argsort(y)])
print(y[np.argsort(-y)])
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
yoyoalphax  楼主| 发表于 2017-12-28 10:14:05 | 显示全部楼层
Sugarcane 发表于 2017-12-27 20:35
不知道是否是你所想!
import numpy as np


你把我题目里的字符串改成float了...不改的话,用你的语句,负号会报错的...

我自己用了[::-1]也解决了,多谢啦~!
回复 支持 反对

使用道具 举报

3

主题

8

帖子

8

积分

贫民

积分
8
Sugarcane 发表于 2017-12-28 10:38:28 | 显示全部楼层
贴出来,后面的人也能看到
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
yoyoalphax  楼主| 发表于 2017-12-28 12:39:12 | 显示全部楼层
Sugarcane 发表于 2017-12-28 10:38
贴出来,后面的人也能看到

就是我说的index逆序下:
  1. y[np.argsort(y, axis=0)[:,1][::-1]]
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表