关于numpy, argsort逆序

yoyoalphax 2017-12-27 02:42:20
以下代码“按第二列逆序排列”怎么写比较好?



import numpy as np
x = np.array([['001','51.0324483776','0.0'],
['002','57.7142857143','0.0'],
['003','56.9014084507','0.0']])

#按第二列正序排列
print(x[np.argsort(x, axis=0)[:,1]])

#按第二列逆序排列?

...全文
3561 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoyoalphax 2017-12-28
  • 打赏
  • 举报
回复
已解决,多谢!
欢乐的小猪 2017-12-27
  • 打赏
  • 举报
回复
引用 1 楼 yoyoalphax 的回复:
numpy的bug吗???逆序这个思路为啥不对???

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

b = np.argsort(y)  # 按升序排列
print(b)
# [0 2 1]

c = 2-np.argsort(y)  # 按降序排列
print(c)
# [2 0 1]

d = y[b] # 排序后的数组-顺序
print(d)

e = y[c] # 排序后的数组-逆序(有问题)
print(e)
你要理解一下。 c = 2-np.argsort(y) # 按降序排列 替换为 c = b[::-1]
yoyoalphax 2017-12-27
  • 打赏
  • 举报
回复
numpy的bug吗???逆序这个思路为啥不对???

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

b = np.argsort(y)  # 按升序排列
print(b)
# [0 2 1]

c = 2-np.argsort(y)  # 按降序排列
print(c)
# [2 0 1]

d = y[b] # 排序后的数组-顺序
print(d)

e = y[c] # 排序后的数组-逆序(有问题)
print(e)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧