2011-05-02 40 views
8

我有一个numpy的阵列是这样的:移位所有索引中NumPy的阵列

x=np.array([0,1,2,3,4]) 

,并希望在那里索引0处的值是在索引1创建一个数组,索引1是在索引2等

我想输出是:

y=np.array([0,0,1,2,3]). 

我猜有一个简单的方法来做到这一点,而无需通过完整的循环访问数组。我怎样才能以numPythonic的方式做到这一点?

回答

14

您可以使用

y = numpy.roll(x, 1) 
y[0] = 0 

y = numpy.r_[0, x[:-1]] 
+0

NumPy的斯文救援。谢谢! – Idr 2011-05-02 16:24:10

0

如果你想这样做原地的,你也可以这样做:

x[1:] = x[:-1] 
x[0] = 0