-1

ファイルから配列に科学数値を読み込みたい。現在、ファイルを読み取ると、数値が文字列として配列にプッシュされます。

要件: 科学的数値を浮動小数点数に変換するのではなく、そのままにしておきたいことに注意してください。ファイルにあるように配列にする必要があります。float への変換はありません。これは要件です。

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

Numbers.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 に答える