我有一个像这样的numpy数组:
x=np.array([0,1,2,3,4])
并且想要创建一个数组,其中索引0中的值在索引1中,索引1在索引2中,等等。
我想要的输出是:
y=np.array([0,0,1,2,3]).
我猜测有一种简单的方法可以在不迭代整个数组的情况下完成此操作。我怎么能以numPythonic方式做到这一点?
答案 0 :(得分:14)
您可以使用
y = numpy.roll(x, 1)
y[0] = 0
或
y = numpy.r_[0, x[:-1]]
答案 1 :(得分:1)
如果你想就地这样做,你也可以这样做:
x[1:] = x[:-1]
x[0] = 0