【发布时间】:2011-11-24 01:05:02
【问题描述】:
我是公认的非常基础的 Python 程序员,在遇到实现各种研究问题的问题时尝试学习。而且我遇到了其中一个问题 - 特别是如何处理我返回一堆数据的循环,而不是通常的“输出单个数字”示例,您只需将循环的结果添加到前面的所有内容中.
这是我尝试运行的未循环脚本的要点:https://gist.github.com/1390355
真正的亮点是model_solve函数的结束:
def model_solve(t):
# lots of variables set
params = np.zeroes((n_steps,n_params)
params[:,0] = beta
params[:,1] = gamma
timer = np.arange(n_steps).reshape(n_steps,1)
SIR = spi.odeint(eq_system, startPop, t_interval)
output = np.hstack((timer,SIR,params))
return output
这将返回 ODE 积分位 (spi.odeint) 的结果以及简单的“我们处于什么时间步?”计时器和本质上是两个随机变量的两列值,以 4950 行和 7 列的 NumPy 数组的形式重复了很多次。
然而,我们的目标是对具有随机值的两个参数(beta 和 gamma)进行 Monte Carlo 分析。本质上,我想创建一个循环的函数,有点像这样:
def loop_function(runs):
for i in range(runs):
model_solve(100)
# output of those model_solves collected here
# return collected output
然后将收集的输出写入文件。通常,我只是让每个 model_solve 函数将其结果写入文件,但此代码将在 PiCloud 或另一个平台上运行,在返回结果之前我不一定有能力写入文件到本地机器。相反,我试图返回一个包含 runs*7 列和 4950 行的巨大 NumPy 数组 - 然后可以将其写入本地计算机上的文件。
关于如何解决这个问题的任何线索?
【问题讨论】:
-
您是在尝试读取从 Python 函数返回的 numpy 数组,还是如何将 Python 函数的结果写入文件?
-
@DK 如何获取从 Python 函数返回的多个 numpy 数组并将它们组合成一个数组。