实现所需输出的一种方法是使用python的内置语言
sort
方法
In [2]: data
Out[2]:
array([[0., 0., 0., 0., 0., 0., 0.],
[2., 2., 2., 0., 2., 0., 0.],
[1., 1., 1., 0., 1., 0., 0.],
[2., 2., 2., 0., 2., 0., 0.],
[1., 1., 2., 0., 2., 0., 0.],
[2., 2., 0., 0., 0., 0., 0.],
[1., 1., 0., 0., 0., 1., 0.]])
In [3]: np.array([sorted(column, key=bool) for column in data.T]).T
Out[3]:
array([[0., 0., 0., 0., 0., 0., 0.],
[2., 2., 0., 0., 0., 0., 0.],
[1., 1., 0., 0., 0., 0., 0.],
[2., 2., 2., 0., 2., 0., 0.],
[1., 1., 1., 0., 1., 0., 0.],
[2., 2., 2., 0., 2., 0., 0.],
[1., 1., 2., 0., 2., 1., 0.]])
这会在所有“零”之后对每个“非零”元素进行排序。