将numpy数组附加到python列表会覆盖列表中的现有元素

时间:2013-05-27 22:16:28

标签: python-2.7 numpy

我试图通过在循环中附加到最初为空的列表来获取numpy数组的python列表。问题是这样:要添加的新数组被正确计算,列表被这个新元素扩展,但列表中的每个元素都被这个新元素覆盖。 这是代码:

from numpy import *

pos = array([0., 0, 0])
vel = array([1., 0, 0])
t, tf, dt = 0., 1, 0.1
ppos = [pos]
while t < tf:
    pos += vel*dt
    ppos.append(pos) 
    t += dt

由于

1 个答案:

答案 0 :(得分:4)

它没有被覆盖,你总是追加相同的数组。 pos += vel*dt就地添加pos数组,但不会创建新数组。因此,您最终会得到一个列表,其中包含对此相同数组的多个引用。

每次都必须numpy.copy