根据总和对数组列进行排序

詹姆士

假设我有一个这样的数组:

np.array([1., 1., 0.],
       [0., 4., 0.],
       [8., 0., 8.],
       [0., 0., 0.],
       [5., 0., 0.],
       [2., 2., 2.]])

列[0]总计为16,列[1]总计为6,列[2]总计为10。

如何有效地在Numpy中按最大到最小列值重新排列数组?在上面的示例中,column [0]将保留在原位,column [1]和column [2]将切换位置。

桑迪普·卡达帕(Sandeep Kadapa)

你可以试试sum一起axis=0并用argsort,然后逆转数组和使用:

a[:,np.argsort(a.sum(axis=0))[::-1]]

array([[1., 0., 1.],
       [0., 0., 4.],
       [8., 8., 0.],
       [0., 0., 0.],
       [5., 0., 0.],
       [2., 2., 2.]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章