打印numpy.float64并将其转换为字符串的正确/可接受的方法是什么?我注意到仅仅使用print
或str()
会失去一些精度。但是,repr
保持完全精度。例如:
>>> import numpy
>>> print numpy.float64('6374.345407799015')
6374.3454078
>>> print repr(numpy.float64('6374.345407799015'))
6374.3454077990154
我假设只要调用print就会变成对float64对象调用str()
。那么,__str__()
for numpy.float64是用'%s' % (float(self))
之类的东西实现的,还是用Python内置的float()
来强制转换float64呢?我试着快速地在核源周围寻找这个,但并没有立即发现发生了什么。
我一直认为repr()
应该返回有效的Python代码,可供eval()
用于重新创建对象。这是公认的惯例吗?幸运的是,在这种情况下,numpy没有遵循这个约定,因为repr()
只返回原始数字作为字符串,而不是像"numpy.float64('6374.345407799015')"
这样的字符串。
所以,所有这些都让我困惑。如何正确地将numpy.float64转换为字符串和/或打印它,同时保证始终具有相同的完全精度?
astype
方法工作得很好:看看numpy.set_printoptions。具体来说
相关问题 更多 >
编程相关推荐