gpt4 book ai didi

python - 在 numpy 中使用多个排序键进行排序

转载 作者:太空狗 更新时间:2023-10-30 00:07:32 28 4
gpt4 key购买 nike

我还没有在 SO 上找到这个答案,所以我在这里分享:

问题:当有多个排序键时,如何在 matlab 中模拟 sortrows 功能?在 matlab 中,这看起来像例如:

sortrows(x,[3,-4])

首先按第 3 列排序,然后按第 2 列排序。

如果您按一列排序,您可以使用 np.argsort 找到该列的索引,并应用这些索引。但是如何为多个列执行此操作?

最佳答案

语法很笨拙而且看起来很奇怪,但最干净的做法是 np.lexsort .

data = np.array([[3, 0, 0, .24],
[4, 1, 1, .41],
[2, 1, 1, .63],
[1, 1, 3, .38]]) #imagine rows of a spreadsheet
#now do sortrows(data,[3,-4])
ix = np.lexsort((data[:, 3][::-1], data[:, 2]))
#this yields [0, 2, 1, 3]

#note that lexsort sorts first from the last row, so sort keys are in reverse order

data[ix]

关于python - 在 numpy 中使用多个排序键进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18920010/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com