假设我有一个这样的数组:
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]将切换位置。
你可以试试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] 删除。
我来说两句