2017-04-10 65 views
0

我有以下numpy的數組:節能numpy的陣列具有一定精度文件

geom= [[ 6.   0.2  -1.6  -1.3915 ] 
     [ 6.   1.40507435 -1.6  -0.69575 ] 
     [ 6.   1.40507435 -1.6   0.69575 ] 
     [ 6.   0.2  -1.6   1.3915 ] 
     [ 6.   -1.00507435 -1.6   0.69575 ] 
     [ 6.   -1.00507435 -1.6  -0.69575 ]] 

當我將它保存到文件:

np.savetxt(g, geom, fmt ='%f6', delimiter=' ', newline='\n', header='', footer='', comments='# ') 

我的第一列得到一個格式「6.0000008」 。隨後我想修改該文件以獲得6.0或6.有沒有簡單的解決方案來做到這一點? 我試圖將字符串轉換爲int,但我得到回報的錯誤消息:

ValueError: invalid literal for int() with base 10: '6.0000008' 
+1

您可以嘗試使用''pandas''而不是numpy的的。它可以讓您輕鬆地將不同類型的數據組合到單個數據框中,然後可以以更簡潔的方式將其導出到文件中。 – jakevdp

回答

0

假設你想保持對其他彩車如同你不會找到一個簡單的解決這個在NumPy。當然,你可以使用structured arrays來達到你想要的效果,但是比使用熊貓(比如@jakevdp)要明顯得多。

您可以將您的NumPy數組導入到Pandas DataFrame中,進行所需的更改,然後將數據輸出爲任何Pandas可接受的格式。

例如,寫一個CSV:

df = pd.DataFrame(geom) 
df[0] = df[0].astype(int) 
df.to_csv(g, index=False)