我有一个a像这样的numpy 数组In [318]: aOut[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. 00.2, 0.25, 0.3, 0.5我怎样才能做到这一点?谢谢。我尝试使用 axis=-1 和 0 进行 np.sort; 它们不是我需要的。重要提示:性能是我解决问题的关键。我的图像处理应用程序的数组通常有 N 列,其中 N 接近 400 万。
1 回答
四季花海
TA贡献1811条经验 获得超5个赞
用于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 ]])
添加回答
举报
0/150
提交
取消