2011-03-17 100 views
10

我一直在嘗試使用savetxt功能numpy的。我遇到的問題是,即使我認爲我相應地定義了我的變量,即int()或double(),我所得到的文本文件也浮動在它們中。我該如何改變它?savetxt如何從float64類型更改爲int或雙

輸入如下:pNoise=[int(i), around(pNoise[0], decimals=3), around(pNoise[1], decimals=3), around(pNoise[2], decimals=3)]

savetxt線如下:savetxt(noutF, pNoisetot)

我想到的是:0 1.567 8.865,而不是我得到0.000000000000000000e+00 1.015909999999999940e+02 2.600000000000000089e-01

+1

什麼'float64'和'double'之間的區別? – Gabe 2011-03-17 23:16:16

+1

這聽起來像也許你有錯誤的格式字符串。向我們展示完整的'savetxt'調用及其輸出樣本和您期望的樣本。 – Gabe 2011-03-17 23:19:20

+0

輸入如下:pNoise = [INT(i)中,周圍(pNoise [0],小數= 3),圍繞(pNoise [1],小數= 3),圍繞(pNoise [2],小數= 3)] savetxt線如下:savetxt(noutF,pNoisetot) @Gabe – madtowneast 2011-03-18 15:01:45

回答

19

您可以定義如何輸出必須與被格式化fmt關鍵字np.savetxt,例如:

np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t') 

四捨五入爲五位小數,或fmt='%i'以整數形式輸出。

在這裏你可以找到有關的fmt的可能性的更多信息:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

+0

感謝我事先閱讀文檔,但我的問題是,我其實想ahve像 INT(I)雙()雙() @ joris – madtowneast 2011-03-18 15:12:26

+3

如果你想讓不同的列具有不同的格式,你也可以指定它。在你的情況下,這將是:'fmt ='%i%10.3f%10.3f'' – joris 2011-03-18 17:47:21

3

如果你想指定浮動的小數位數的

np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t') 

7小數在此情況

np.savetxt("file.txt", output, fmt='%10.7f', delimiter='\t') 

基本上,fmt =%10.Yf'其中Y指定了十進制數。

相關問題