Python:将fitparameters写入表中

时间:2014-02-20 14:13:43

标签: python

我在文件夹中有一些光谱,洛伦兹峰应该适合共振曲线。这很好用,但我需要将文件名fitparameters和fit的标准偏差写入.txt文件。

目前,在保存fitparameters的时候看起来像这样:

参数[0],

参数[1],

参数[2], ....

但是它们应该在文本文件中如下所示: 文件名,参数[0],参数[1],参数[2],....

我保存参数的代码如下所示:

import numpy as np
np.savetxt('path/to/folder/', parameters, delimiter=",")

2 个答案:

答案 0 :(得分:0)

我想我找到了一个不太漂亮的解决方案......

首先,我使用“水平”尺寸定义一个数组

table=np.ndarray((9),int) #9 columns in my case

然后我有一个循环,它将文件名作为表中的第一列读取,并将所有内容写入一行:

temp=[[name, fitparameter[0],...,fitparameter[n],std_devs[0],....,[std_devs[n]]

在最后一步中,我只是将新行堆叠到我的初始化数组

table=np.vstack([table,temp])

丑陋的是,初始化的数组不是空的,因此我必须在进一步的代码中跳过表格的第一行。

答案 1 :(得分:0)

除非我遗漏了某些东西,否则这样的东西应该是你想要的?如果你正在使用numpy数组,只需将它们转换为multidim列表(如下所示),然后再使用它,你就应该好了。

filename = "name" # logfile
fittings = [range(8) for fit in range(5)] # example data matrix

with open(filename,'w') as f:    
    for fit in fittings:
        fit.insert(0,"filexy") # the filename at the beginning of the line
        f.write(str(fit)[1:-1]+"\n") # write list, ignore brackets

生成文件“name”,内容为:

'filexy', 0, 1, 2, 3, 4, 5, 6, 7
'filexy', 0, 1, 2, 3, 4, 5, 6, 7
'filexy', 0, 1, 2, 3, 4, 5, 6, 7
'filexy', 0, 1, 2, 3, 4, 5, 6, 7
'filexy', 0, 1, 2, 3, 4, 5, 6, 7