Python for 循环只保存我的二维数组中的最后一个循环

标签 python arrays loops for-loop random-walk

我正在生成一维随机游走,我希望我的 for 循环随着时间的推移保存到目前为止已经到达的原点的最大距离。生成 5 个随机游走。 这是我的代码:

for j in range(5):
    r = rand(10000)
    t = range(10000)
    x = zeros(10000)
    y = zeros((10000, 5))
    for i in range(10000):
        walk = r[i]
        if walk < 0.5:
            x[i] = x[i-1] - 1
            y[:,j]= maximum.accumulate(abs(x))
        else:
            x[i] = x[i-1] + 1
            y[:,j]= maximum.accumulate(abs(x))
    plot(t,x, label="Walk %d" %(j+1))

title("1-D Random Walk (Position versus Time)")
xlabel("Time")
ylabel("Position")
legend(loc="best")
grid()

问题在于,在 for 循环遍历设定范围 (5) 之后,输出的二维数组仅包含最后一次迭代。 不知何故,它覆盖了之前的那些,所以我只会得到一个 10000x5 的数组,其中只填充了最后一行。

我怎样才能让它工作?

最佳答案

出于某种原因,你选择了执行

y = zeros((10000, 5))

一遍又一遍,每次都通过外循环。

作为一个明显的结果,只有对 y 的最后一次赋值才可能“接受”,显然会覆盖任何先前对相同名称的赋值。从这种重复分配中,您还可以期待什么其他行为?!

将此赋值移动到外层循环的外部,这样就不会“覆盖”名称y

关于Python for 循环只保存我的二维数组中的最后一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321841/

相关文章:

r - 将每个组与 data.table 中的每个其他组进行比较

python - 如何将巨大的二进制数据转换为ASCII格式?

python - 我应该如何更改我的 SQLAlchemy 查询?

java - 这怎么违法

arrays - 使用循环查找特定数组

具有奇怪值的 ruby​​ 数组

python - Django - 同一查询中的 objects.values() 和 prefetch_related()

python - 使用 lxml 解析 xml 文件

c# - 对数组的困惑

javascript - 如何在 HTML 中使特定的下拉菜单可点击