我有一个numpy数组:
x = np.zeros(5)
[0,0,0,0,0]
x.put(5)
[0,0,0,0,5]
x.put([1,2,3])
[0,5,1,2,3]
x.put([5,10,10])
[2,3,5,10,10]
我想要如上例所示。我只是把信息放在最后。并且数据移位并剪掉溢出。
答案 0 :(得分:1)
您可以将数组的尾部复制到初始部分。请注意,此方法为O(n),因此如果数组x
非常长,则不适合。
def push(x, y):
push_len = len(y)
assert len(x) >= push_len
x[:-push_len] = x[push_len:]
x[-push_len:] = y
return x
>>> x = numpy.zeros(5)
>>> x
array([ 0., 0., 0., 0., 0.])
>>> push(x, [5])
array([ 0., 0., 0., 0., 5.])
>>> push(x, [1,2,3])
array([ 0., 5., 1., 2., 3.])
>>> push(x, [5,10,10])
array([ 2., 3., 5., 10., 10.])