更改numpy数组中元素的位置

时间:2014-10-26 00:48:36

标签: python arrays image-processing

我正在尝试将numpy数组中的元素移动到第一个位置,如下所示。

a = [[1, *2, 3]
     [4, 5, 6*]
     [7*, 8, 9]]

应该是这样的:

a = [[2, 1, 3]
     [6, 4, 5]
     [7, 8, 9]]

是否有任何numpy功能可以帮助做到这一点?

1 个答案:

答案 0 :(得分:1)

如果只滚动数组的第一个切片,

numpy.roll将帮助您完成此操作。 zip中的第二个列表是您希望移到前面的项目的索引。

>>> import numpy as np
>>> m = range(1,10)
>>> m = np.reshape(m,(3,3))
>>> m
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> for (row, column) in zip(range(3),[1,2,0]):
...     m[row][:column+1] = np.roll(m[row][:column+1], 1)
... 
>>> m
array([[2, 1, 3],
       [6, 4, 5],
       [7, 8, 9]])