我已经计算了几个列表的平均值。现在我想将数据保存到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_)
诀窍在哪里?
答案 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
使其成为包含一个浮点数的元组。