18

例如,我有一个 numpy 数组

a = np.arange(10)

如何将第一个n元素移动到数组的末尾?

我找到了这个roll函数,但它似乎只做相反的事情,将最后一个n元素移到开头。

4

2 回答 2

50

为什么不只是roll一个负数?

>>> import numpy as np
>>> a = np.arange(10)
>>> np.roll(a,2)
array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
>>> np.roll(a,-2)
array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])
于 2013-04-03T16:10:45.413 回答
8

你可以使用负移

a = np.arange(10)
print(np.roll(a, 3))
print(np.roll(a, -3))

返回

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

于 2013-04-03T16:11:45.990 回答