不知道如何最好的标题这个问题,但基本上我想要生成一个新的numpy数组的基础上现有的数组。唯一的区别是,这些值已经转移到了我指定的索引中。还假定需要包装。
为了简单起见,请考虑基本数组:
[[0,1,2],
[3,4,5],
[6,7,8]]如果我希望将基数组中的零(0)或第一个元素移到(0,1),则如下所示:
[[2,0,1],
[5,3,4],
[8,6,7]]如果我希望第一个元素在(2,2)处移动,它将是:
[[4,5,3],
[7,8,6],
[1,2,0]]发布于 2018-11-26 06:43:17
使用numpy.roll。例如,对于第一个输出,可以向右滚动1索引,这意味着沿轴1:
import numpy as np
x = np.array([[0,1,2], [3,4,5], [6,7,8]])
x_shifted = np.roll(x, shift=1, axis=1)由于交换性,对于双向循环排列效应,您可以滚动两次(每维一次):
x_double_shifted = np.roll(np.roll(x, shift=2, axis=1), shift=2, axis=0)显然可以做得更“漂亮”;-)
祝好运!
https://stackoverflow.com/questions/53475800
复制相似问题