我是新来的,对python一般来说,请原谅任何格式问题和其他问题。我是一个物理学家,我有一个参数模型,我想迭代一个或多个模型的参数值(可能在MCMC设置中)。但为了简单起见,假设我只有一个可能值为N的参数。在循环中,我计算模型和与之相关的几个标量度量。在
我想将数据[参数值,metric1,metric2,…]逐行保存到一个文件中。我不在乎什么类型:.pickle、.npz、.txt、.csv或任何其他类型都可以。在
我不想在计算完所有的N模型之后保存数组。这里的问题是,有时一个参数值是如此的非物理性,以至于我调用来计算模型的程序(这是一个非常复杂的东西,多年来一直在开发中,所以我没有接触它)会崩溃内核。如果我有30000个N=30000的模型要做,而这发生在29000时,我会非常不开心,浪费了很多时间。我可能还需要注意内存使用情况—我已经知道如何使用文本文件来实现我的建议,但是它会崩溃在2600行左右,因为我认为它不喜欢打开那么长的文本文件。在
所以,一些伪代码:
filename = 'outFile.extension'
dataArray = np.zeros([N,3])
idx = 0
for p in Parameter1:
modelOutputVector = calculateModel(p)
metric1, metric2 = getMetrics(modelOutputVector)
dataArray[idx,0] = p
dataArray[idx,1] = metric1
dataArray[idx,2] = metric2
### Line that saves data here
idx+=1
我偏爱npz或pickle格式,但都不知道如何使用它们。如果有更好的格式或更好的解决方案,我很感谢你的任何建议。在
编辑:我试图制作一个文本文件,在循环内:
^{pr2}$它第一次在2600点坠毁,或者我认为这只是巧合,但每次我尝试这个,它就停下来了。我可以破解它,生成一批2600行的文件,但肯定有更好的解决方案。在
对错误的了解如此有限,很难说,但如果您认为这是一个文件写入错误,您可以尝试以下方法:
然而
np.savetxt()
我更喜欢
with open()
技术,因为我读过的所有python入门书籍都是这样构造它们的文件读/写过程的,所以我认为其中有智慧。你也可以考虑像fabianegli评论和保存到单独的文件(我的工作就是这样做的)。在相关问题 更多 >
编程相关推荐