我正在尝试将numpy数组中的元素移动到第一个位置,如下所示。
a = [[1, *2, 3]
[4, 5, 6*]
[7*, 8, 9]]
应该是这样的:
a = [[2, 1, 3]
[6, 4, 5]
[7, 8, 9]]
是否有任何numpy功能可以帮助做到这一点?
答案 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]])