私信  •  关注

Stefan B

Stefan B 最近创建的主题
Stefan B 最近回复了
4 年前
回复了 Stefan B 创建的主题 » Python-将numpy数组中的值移动到底部

实现所需输出的一种方法是使用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.]])

这会在所有“零”之后对每个“非零”元素进行排序。