为了账号安全,请及时绑定邮箱和手机立即绑定

如何对特定行上的 numpy 数组进行排序,并相应地更改其他行?

如何对特定行上的 numpy 数组进行排序,并相应地更改其他行?

胡说叔叔 2023-09-12 16:56:31
我有一个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 ]])


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信