微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法强制 numpy.set_printoptions 显示确切的浮点值?

如何解决有没有办法强制 numpy.set_printoptions 显示确切的浮点值?

question 59674518 之后,numpy.set_printoptions 有没有办法确保显示 EXACT 浮点值,而不显示尾随零,也不知道先验值?我尝试了所有 4 个浮动模式选项都无济于事。只是想了解;没有最终目标。 (我认为这是不可能的,如果是这样,有什么道理?只是一个不存在的功能[还]?)。

Mac_3.2.57$python3
Python 3.7.1 (default,Nov  6 2018,18:45:35) 
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help","copyright","credits" or "license" for more information.
>>> import numpy
>>> numpy.set_printoptions(precision=15)
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 11)
array([0.0107421875])
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.278255462646484e-07])
>>> print("%.45f" % (numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)).item(0))
0.000000327825546264648437500000000000000000000
>>> numpy.set_printoptions(floatmode="fixed")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.278255462646484e-07])
>>> numpy.set_printoptions(floatmode="unique")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.2782554626464844e-07])
>>> numpy.set_printoptions(floatmode="maxprec")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.278255462646484e-07])
>>> numpy.set_printoptions(floatmode="maxprec_equal")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.278255462646484e-07])
>>> numpy.set_printoptions(precision=45,floatmode="fixed")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.278255462646484375000000000000000000000000000e-07])
>>> numpy.set_printoptions(precision=45,floatmode="unique")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.2782554626464844e-07])
>>> numpy.set_printoptions(precision=45,floatmode="maxprec")
>>> numpy.array([22.0],floatmode="maxprec_equal")
>>> numpy.array([22.0],dtype=numpy.float64) / (2 ** 26)
array([3.2782554626464844e-07])
>>> 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。