【问题标题】:Saving floats to a file将浮点数保存到文件
【发布时间】:2013-11-26 04:39:43
【问题描述】:

我计算了几个列表的平均值。现在我想将数据保存到 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 conatins 浮动。 但即使我定义了一个数组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_)

诀窍在哪里?

【问题讨论】:

    标签: python arrays numpy save


    【解决方案1】:

    在您的第一次尝试中,您尝试保存 numpy.float64 变量,并且文档说 numpy.savetxt 需要一个类似数组的对象。

    在您的第二次尝试中,您错过了指定矩阵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
    

    【讨论】:

      【解决方案2】:
      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 一个有平均值

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 只打印 txt 文件中最后一个列表的平均值。我想要一个包含所有平均值的列表。
        猜你喜欢
        • 2012-07-24
        • 1970-01-01
        • 1970-01-01
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        • 2010-12-09
        • 1970-01-01
        • 2012-08-08
        相关资源
        最近更新 更多