2016-03-05 15 views
0

np.log(someMatrix)生成1.220536239336080619e+01類型的值。我想實際上看到+e01的所有數字。請問有沒有辦法告訴numpy這樣做?我試過around(),但不適合我。Python numpy指數表示法

+0

爲什麼你說*你不*看到「所有的數字」?如果你有大量的數字,不要忘記浮點數的精確度有限,所以那些放在e + 20浮點上的數字本質上是噪聲。 – user2357112

+0

float double最大精度爲52位,如果您打印它,可以通過'len(bin())'來檢查您有多少東西。其中一個答案建議如下。例如,您的問題中的數字需要63位來完全表示。 – user3467349

回答

1

您可以根據需要使用格式化打印查看浮點數。 但我同意user2357112,最後的數字可能超出精度限制,並不重要。

r=1.220536239336080619e+01 
print "%-.24f"%(r) 

12.205362393360806194664292 
1

當你寫你的數據文件,可以在不同的打印格式之間進行選擇,%f是一個,不使用指數記數法:

np.savetxt('matrix.txt', np.log(someMatrix), '%f') 
1

可以使用np.array2str有格式是將其顯示爲不帶小數的數字:

import numpy as np 
a = np.array([1434e24]) 
np.array2string(a, formatter={'float_kind':lambda x: "%.0f" % x}) 
# prints '[1433999999999999897558319104]' 

但是請注意,數字是由浮點精度決定的,因此wil我不是你輸入的內容。