2016-05-18 92 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'> 

我如何保持科學記數法的每一個元素,並具有非字符串元素的類型?

編輯:這裏的目標是創建一個輸入文件,所以格式化的目的是匹配已知輸入文件的格式。我的理想輸出如下:

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

刪除['%.9e' % x for x in ary]給我的下面,沒有我要找的科學記數法:

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

只是徘徊,你爲什麼需要這個?如果您正在進行數學運算,您可以在獲得後將結果轉換爲科學記數法。 – sbowde4

+0

@ sbowde4 - 我正在寫一個輸入文件,並且試圖匹配現有輸入文件的格式。 – AaronJPung

回答

0

你實際上是將浮動列表,元,當你做

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

這很可能是最好的發揚numpy的浮動陣列的精度在進一步的計算中,然後格式化到T的字符串列表他需要輸入的最後一位有效數字。

相關問題