-1

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

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

  1. 错误:['8.201E-02','8.82562E-05','1.26080E-05','1.23251E+01','2.00000E-20','9.600E-02']
  2. :[8.201E-02、8.82562E-05、1.26080E-05、1.23251E+01、2.00000E-20、9.600E-02]

代码:

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']

数字.txt:

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

3 回答 3

1

我想我明白了:你想要的是它们显示为指数格式

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

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

然后在显示时使用类似的东西:

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

编辑

  • 按照建议与原语一起使用(更好)
于 2013-10-21T11:57:00.923 回答
0
import numpy as np
print np.loadtxt('numbers.txt',delimiter="\n")

似乎可以解决问题

于 2013-10-21T12:10:14.047 回答
0

你可以试试

data = map(Decimal, data)

为小数设置适当的精度。检查Python 文档

于 2013-10-21T11:53:53.917 回答