1

我正在尝试通过在循环中附加到最初为空的列表来获取 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

谢谢

4

1 回答 1

4

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

你每次都必须numpy.copy这样做。

于 2013-05-27T22:18:58.147 回答