【发布时间】:2018-10-26 12:17:18
【问题描述】:
我正在 python 上绘制一些随机游走函数并尝试创建它,以便它每 1000 步获取随机游走的位置,然后将它们绘制在直方图中。我意识到我每次都可以为 n=1000,2000 等创建一个新列表,只需将 walk 的值附加到该列表,但是有没有办法让 python 每 1000 步创建一个新列表?
import numpy as np
import matplotlib.pyplot as plt
def random_walk(N,d):
walk = d*np.cumsum(2*np.random.binomial(1,.6,N)-1)
return walk
n1=[]
n2=[]
n3=[]
n4=[]
n5=[]
for k in range(5000):
particular_walk = random_walk(5000,2)
n1.append(particular_walk[1000])
n2.append(particular_walk[2000])
n3.append(particular_walk[3000])
n4.append(particular_walk[4000])
n5.append(particular_walk[-1])
plt.hist(n1,bins=20,histtype='step',density=True)
plt.hist(n2,bins=20,histtype='step',density=True)
plt.hist(n3,bins=20,histtype='step',density=True)
plt.hist(n4,bins=20,histtype='step',density=True)
plt.hist(n5,bins=20,histtype='step',density=True)
plt.show()
这是我到目前为止的代码,但我意识到它不起作用。我知道我可以有一个名为“中点”的列表,并将其设置为 2500 处特定步行的位置,但有没有办法自动完成?
【问题讨论】:
-
您希望输出是什么?
-
我想要多个列表,每个列表都包含当时随机游走的所有值。然后我希望它在直方图中绘制所有这些列表的概率。
-
请显示示例输出和您希望看到的图
-
具体来说,您是要绘制 5 个不同的直方图还是只绘制上面示例中的一个?
-
5 个直方图,我知道如何手动执行此操作 - 但是如果 n 更改为 10000 而不是 5000,有没有办法让它在这种情况下自动生成 10 个直方图?现在在我的手机上,但稍后会显示一个示例。
标签: python list numpy histogram random-walk