在numpy中显示超过16位数

时间:2016-11-03 18:06:57

标签: python numpy

我试图在python中设置np.set_printoptions(precision = 100) 但输出仍然像-0.00510610862213

无论如何要显示例如100位?

1 个答案:

答案 0 :(得分:3)

您可以将显示精度更改为某个点。例如,看下面 我们可以将显示的位数更改为一个点,之后不再显示 显示数字。

In [1]: import numpy as np
In [2]: np.random.seed(42)
In [3]: a = np.random.randn(1,1)
In [4]: a
Out[4]: array([[ 0.49671415]])

In [5]: np.set_printoptions(precision=4)
In [6]: a
Out[6]: array([[ 0.4967]])

In [7]: np.set_printoptions(precision=54)
In [8]: a
Out[8]: array([[ 0.4967141530112326730517224859795533120632171630859375]])

In [9]: np.set_printoptions(precision=55)
In [10]: a
Out[10]: array([[ 0.4967141530112326730517224859795533120632171630859375]])

但是,目前还不清楚为什么你会这样做,因为@ user2357112 如果没有,这将不会改变数值精度。 numpy中的默认值是存储 64位浮点数(如here所述)仅精确到最多15位 有效数字

  

这给出了15-17个有效小数位数精度。如果是十进制字符串   最多15位有效数字转换为IEEE 754双精度   表示然后转换回具有相同数量的字符串   有效数字,则最终字符串应与原始字符串匹配。如果是IEEE   754双精度转换为十进制字符串,至少为17   有效数字然后转换回双倍,然后最终数字必须   与原作相匹配。

使用

说明了这方面的一个例子
In [11]: np.float64('0.454125401')
Out[11]: 0.45412540099999998