如何将文件中的浮点数读入列表

时间:2014-09-19 07:47:33

标签: python list file-io numpy

大家好:我是python的新手,对于你们中的一些人来说这个问题可能很简单。 我的详细信息问题(在我的任务的步骤中写作)如下:

  1. 我需要在高斯分布下生成10个随机2D点,这很容易:

    Testing = np.random.multivariate_normal(mean, cov, 10)
    
  2. 其中mean,cov已经定义。

    1. 我需要将上述值存储到txt文件中,以便以后进行测试,这也是完成的:

      with open("Testing.txt", "w") as f:
          f.write(str(Testing))
      
    2. 在第3步中,我需要将步骤1中创建的所有10个点读取到新列表中并执行计算,我写道:

      with open('Testing.txt') as f:
          Data = f.read()
      

      注意,上面两行代码是用不同于步骤1和脚本的脚本的单独脚本编写的。 2。

    3. 步骤3本身似乎没问题,因为如果我测试

          print(Data)
      

      它将在终端中打印出与txt文件中的值和格式相同的格式,问题是数据结构似乎与步骤1中创建的测试数据结构不同。例如,如果在步骤1中,我添加额外的一行

          plt.scatter(Testing[:,0],Testing[:,1],c='yellow')
      

      它将为我绘制10点积分。但是如果我在第3步的脚本中编写相同的命令

          plt.scatter(Data[:,0],Data[:,1],c='yellow')
      

      这将是一个错误“TypeError:字符串索引必须是整数,而不是元组”。显然,数据和测试的结构是不同的。有人可以帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在读取数据时使用NumPy函数进行文件输入输出,那么您得到的数据可以被切割为Data[:,0],例如:

第2步)np.savetxt("Testing.txt", Testing)

第3步)Data = np.loadtxt("Testing.txt", dtype=object)。请注意,根据您的评论,您可能需要dtype=object,您实际上正在阅读str个对象。