首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于上列值的numpy排序数组

基于上列值的numpy排序数组
EN

Stack Overflow用户
提问于 2018-06-15 16:23:17
回答 2查看 10.3K关注 0票数 5
代码语言:javascript
运行
复制
import numpy as np

a = np.array([[5,9,44],
              [5,12,43],
              [5,33,11]])

b = np.sort(a,axis=0)

print(b) #not well

# [[ 5  9 11]
# [ 5 12 43]
# [ 5 33 44]]

#desired output:

#[[5,33,11],
# [5,12,43],
# [5,9,44]]

numpy排序会完全改变行(当然是基于较低的行到最高的行),但是我想保持行不动。我想根据最后一列值对行进行排序,但是数组中的行和值必须保持不变。有什么节奏曲的方法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-15 16:25:17

代码语言:javascript
运行
复制
ind=np.argsort(a[:,-1])
b=a[ind]

编辑当在排序中使用axis时,它对每一列进行单独排序,您想要的是从所选列(-1等效于最后一列)中获取排序行的索引,然后重新排序原始数组。

票数 11
EN

Stack Overflow用户

发布于 2018-06-15 16:27:04

代码语言:javascript
运行
复制
a[a[:,-1].argsort()] 

可能会为你工作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50879469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档