Python从数组中的文件中读取科学数字

时间:2013-10-21 11:49:09

标签: python python-2.7

我想从文件到数组中读取科学数字。 现在,当我读取文件时,数字将作为字符串在数组中推送。

需要量: 请注意,我希望科学数字完整,不要转换为浮点数,它们应该在数组中,因为它们在文件中。没有转换为浮动。这是要求。

  1. 错误:['8.201E-02','8.82562E-05','1.26080E-05','1.23251E + 01','2.00000E-20','9.600 E-02' ]
  2. 正确:[8.201E-02,8.82562E-05,1.26080E-05,1.23251E + 01,2.00000E-20,9.600E-02]
  3. 代码:

    data = open("numbers.txt", "r").read().split('\n')
      print data
    #['8.201E-02', '8.82562E-05', '1.26080E-05', '1.23251E+01', '2.00000E-20', '9.600E-02']
    

    Numbers.txt:

    8.201E-02
    8.82562E-05
    1.26080E-05
    1.23251E+01
    2.00000E-20
    9.600E-02
    

3 个答案:

答案 0 :(得分:1)

我想我理解:你想要的是它们以指数格式显示

我会加载它们,转换为浮动,然后在打印时显示为科学格式

with open("numbers.txt", "r") as fh:
   data=map(float,fh.read().split('\n'))

然后在显示时使用类似:

['%e' % (x) for x in data]

修改

  • 与原语一起使用(更好)

答案 1 :(得分:0)

你可以尝试

data = map(Decimal, data)

为Decimals设置适当的精度。检查the Python doc

答案 2 :(得分:0)

import numpy as np
print np.loadtxt('numbers.txt',delimiter="\n")

似乎要做的伎俩