6

假设我有一个 numpy 数组:

>>> a 
array([0,1,2,3,4])

我想“旋转”它以获得:

>>> b
array([4,0,1,2,3])

什么是最好的方法?

我一直在转换为双端队列并返回(见下文),但有更好的方法吗?

b = deque(a)
b.rotate(1)
b = np.array(b)
4

3 回答 3

12

只需使用以下numpy.roll功能:

a = np.array([0,1,2,3,4])
b = np.roll(a,1)
print(b)
>>> [4 0 1 2 3]

另请参阅此问题

于 2013-04-12T11:28:46.970 回答
2
numpy.concatenate([a[-1:], a[:-1]])
>>> array([4, 0, 1, 2, 3])
于 2013-04-12T11:19:05.477 回答
1

试试这个

b = a[-1:]+a[:-1]
于 2013-04-12T11:07:47.410 回答