2014-02-20 35 views
0

我在文件夾中有一些光譜,應該在諧振曲線上擬合一個洛倫茲峯。這工作得很好,但我需要將文件名fitparameters和適合的標準偏差寫入.txt文件。Python:將fitparameters寫入表

在它看起來像這樣的時刻是保存fitparameters:

參數[0],

參數[1],

參數[2],....

但是它們應當在文本文件這樣衝擊片雷管: 文件名,參數[0],參數[1],參數[2],....

與我保存參數的代碼如下所示:

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

我們能有你寫的參數文件的代碼? – RickyA

+0

我是否正確理解您的問題是您不知道如何在沒有行分隔的情況下將變量寫入文件? – runDOSrun

+0

不需要。對於每個定點過程,我都會得到一個文件名和8個擬合參數。我想要一張桌子並排放在一起。下一個適合的結果應放在同一個表中換行。 – FrankTheTank

回答

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]) 

醜陋的事情是,初始化數組不爲空,所以我不得不跳過我的表的第一行進一步的代碼。

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 

生成文件「名」與內容:

'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