gpt4 book ai didi

python - 如何在特定行上对 numpy 数组进行排序,而其他行会相应地更改?

转载 作者:行者123 更新时间:2023-12-04 08:51:20 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Sorting arrays in NumPy by column

(15 个回答)


11 个月前关闭。




我有一个 numpy 数组 a像这样

In [318]: a
Out[318]:
array([[0. , 1. , 2. , 3. ],
[0.5, 0.3, 0.2, 0.25]])
我需要沿着第二行(带有 [0.5,0.3,0.2,0.25] 的行)进行排序,同时让第一行相应地改变。在这种情况下,预期的结果是
2    3     1.   0
0.2, 0.25, 0.3, 0.5
我怎样才能做到这一点?谢谢你。我试过 np.sort with axis=-1 和 0;他们不是我需要的。
重要提示:性能是我解决问题的关键。我的数组来自图像处理应用程序,通常有 N 列,其中 N 接近 400 万。

最佳答案

使用 np.argsort()获取已排序行的索引,然后将其用作掩码对整个数组进行排序(基于列):

In [69]: mask = np.argsort(a[1])                                                                                                                                                                            

In [70]: a[:, mask]
Out[70]:
array([[2. , 3. , 1. , 0. ],
[0.2 , 0.25, 0.3 , 0.5 ]])

关于python - 如何在特定行上对 numpy 数组进行排序,而其他行会相应地更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64087127/

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