Python 以一定精度将numpy数组保存到文件
我有以下numpy阵列:Python 以一定精度将numpy数组保存到文件,python,numpy,Python,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 ]
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'
假设您希望保持其他浮动不变,那么在NumPy中就不会找到简单的解决方案。当然,你可能会使用它来实现你想要的,但这将比仅仅使用熊猫(正如@jakevdp所提到的)要多得多 您可以将NumPy数组导入Pandas数据帧,进行所需的更改,然后将数据输出为任何Pandas可接受的格式 例如,要编写csv,请执行以下操作:
df = pd.DataFrame(geom)
df[0] = df[0].astype(int)
df.to_csv(g, index=False)
您可以尝试使用
pandas
而不是numpy。它使您可以轻松地将不同类型的数据组合到单个数据帧中,然后以更干净的方式将其导出到文件中。