gpt4 book ai didi

python - 按行降序排序 Nd Numpy 数组

转载 作者:行者123 更新时间:2023-11-28 22:08:07 38 4
gpt4 key购买 nike

我想按行值对以下矩阵进行排序:

a = array([[1, 4, 6],
[5, 3, 7],
[8, 4, 1]])

作为

a = array([[6, 4, 1],
[7, 5, 3],
[8, 4, 1]])

我可以使用 np.argsort(-a) 获取排序索引,它返回以下索引矩阵:

>>> a_idx = np.argsort(-a)
array([[2, 1, 0],
[2, 0, 1],
[0, 1, 2]])

但使用这些索引重新排列原始矩阵对我来说并没有发生。

>>> a[a_idx]
array([[[8, 4, 1],
[5, 3, 7],
[1, 4, 6]],

[[8, 4, 1],
[1, 4, 6],
[5, 3, 7]],

[[1, 4, 6],
[5, 3, 7],
[8, 4, 1]]])

如何高效完成这样的任务?非常感谢。

最佳答案

试试这个,使用 .take_along_axis() 方法,

>>> a = np.array([[1, 4, 6],
[5, 3, 7],
[8, 4, 1]])
>>> a_idx = np.argsort(-a)

输出:

>>> np.take_along_axis(a, a_idx, axis=1)        
array([[6, 4, 1],
[7, 5, 3],
[8, 4, 1]])

关于python - 按行降序排序 Nd Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58871617/

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