2016-05-18 5 views
0

3要素のnumpy配列があります。この配列から、各要素が科学記法であるリストを作成したいと思います。ではなく、の文字列を作成します。これは簡単だと思われるが、私はそれに問題がある。次のように私の現在のスクリプトは次のとおりです。要素のリストを作成し、各要素を科学的表記で作成します。

import numpy as np 

ary = np.array([2.124598e+00, 9.1542e+00, 1.049e+00]) 
ary = ary.astype(np.float) 
ary = ary.tolist() 
ary = ['%.9e' % x for x in ary] 
print(ary) 
print(type(ary)) 

出力は次のとおりです。

['2.124598000e+00', '9.154200000e+00', '1.049000000e+00'] 
<type 'list'> 

どのようにして、各要素についての科学的表記を維持し、非文字列要素の型を持つことができますか?

編集:ここでの目標は、入力ファイルを作成することです。そのため、既知の入力ファイルの書式に一致するように書式が設定されます。次のように私の理想的な出力は次のようになります。['%.9e' % x for x in ary]を削除

[2.124598000e+00, 9.154200000e+00, 1.049000000e+00] 
<type 'list'> 

は私が探している科学表記せず、私に次のようになります:

[2.124598, 9.1542, 1.049] 
<type 'list'> 
+1

放浪していますが、なぜこれは必要ですか?数学的操作を行っている場合は、取得した結果を科学的表記に変換することができます。 – sbowde4

+0

@ sbowde4 - 入力ファイルを作成していますが、既存の入力ファイルの書式設定と一致させようとしています。 – AaronJPung

答えて

0

あなたが実際に、進、フロートリストを変換していますあなたは

ary = ['%.9e' % x for x in ary] 

を行うときに文字列のリストにそれはおそらくあなたの更なる計算でnumpyのfloat配列の精度を発揚し、その後トンにフォーマットするのがベストだろう彼は出力のために最後に必要/必要な有効数字の数です。

関連する問題