我试图通过在循环中附加到最初为空的列表来获取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
由于
答案 0 :(得分:4)
它没有被覆盖,你总是追加相同的数组。 pos += vel*dt
就地添加pos
数组,但不会创建新数组。因此,您最终会得到一个列表,其中包含对此相同数组的多个引用。
每次都必须numpy.copy
。