gpt4 book ai didi

python - 为什么 NumPy 中有奇怪的科学记数法?

转载 作者:行者123 更新时间:2023-11-28 19:20:16 25 4
gpt4 key购买 nike

每当我在循环中打印数组时,它都会显示为

[  1.170e-01   2.187e+08   2.000e-02]

即使我使用了下面的代码

np.set_printoptions(suppress=True,precision=3)

代码运行后,我复制粘贴相同的输出

a1=[  1.170e-01,   2.187e+08 ,  2.000e-02]
print a1

它正确打印为

[0.117, 218700000.0, 0.02]

显然这是 NumPy 中的不良行为?在循环内和循环外打印应该无关紧要!

实际代码是

ll = (calib_params+np.sqrt(np.diag(params[1])*residuals/(len(data_outsample)-3))*nstd)
ul = (calib_params-np.sqrt(np.diag(params[1])*residuals/(len(data_outsample)-3))*nstd)
print ll
print ul

我什至尝试过 np.round(ll,3)np.round(ul,3) 但遗憾的是它们都不起作用。

不能压制科学展示!

最佳答案

这不是特定于 numpy,而是通常作为字符串的 Python 浮点表示。您遇到了两种不同的默认行为(科学计数法和纯十进制)。

This描述将浮点格式化为字符串。

Here是关于该主题的 Stack Overflow 条目。

以下代码将数字格式化为三位小数:

print('%1.3f'% .333333333333333333333333)

输出

0.333

关于python - 为什么 NumPy 中有奇怪的科学记数法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com