将浮点数保存到文件中

时间:2013-11-13 14:21:34

标签: python arrays numpy save

我已经计算了几个列表的平均值。现在我想将数据保存到txt或csv文件。这是我的方法:

k=range(8,15)
for i in k:
    q=range(i)
    g=mean(q)    
    print g        
    savetxt('mean_values.txt', g)

但这给了我IndexError: tuple index out of range。我认为这是因为savetxt需要一个数组,但g需要浮点数。 但即使我定义了一个数组g_,我也会得到相同的错误:

k=range(8,15)
for i in k:
    q=range(i)
    g=mean(q)    
    g_=array(g)    
    print g_
    savetxt('mean_values.txt', g_)

诀窍在哪里?

3 个答案:

答案 0 :(得分:2)

在您第一次尝试时,您尝试保存numpy.float64变量,文档说明numpy.savetxt需要一个array_like对象。

在第二次尝试中,您错过了括号以指定矩阵g_=array([g]),但是如果将txt保存在循环内,则每次都会覆盖输出文件。

我想这就是你想要的:

import numpy as np

g = list()
k = range(8,15)
for i in k:
    q = range(i)
    g.append(np.mean(q))

np.savetxt('myfile.txt', np.array(g), fmt='%.2f')

myfile.txt的输出:

3.50
4.00
4.50
5.00
5.50
6.00
6.50

答案 1 :(得分:1)

myFile = open("mean_values.csv","w")
myFile.write("ID" + "," + "Mean Value" +"\n") //column headers
k=range(8,15)
for i in k:
    q=range(i)
    g=str(mean(q))   
    myFile.write(str(i) + "," + g +"\n")
myFile.close() 
在excel中打开时,

应该为您提供2列。一个ID为1,平均值为

答案 2 :(得分:0)

使用(g,)代替g使其成为包含一个浮点数的元组。