首页 > 后端开发 > Python教程 > 如何在没有科学记数法的情况下以指定的精度漂亮地打印 NumPy 数组?

如何在没有科学记数法的情况下以指定的精度漂亮地打印 NumPy 数组?

DDD
发布: 2024-12-08 11:41:11
原创
1065 人浏览过

How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

在没有科学记数法和给定精度的情况下漂亮地打印 NumPy 数组

打印浮点数的 NumPy 数组时,通常会产生几个小数并且使用科学格式,使其难以阅读,尤其是对于低维数组。由于 NumPy 数组需要作为字符串打印,这就提出了寻找解决方案的问题。

使用 numpy.set_printoptions 允许您为输出设置所需的精度。通过设置此选项,您可以控制显示的小数位数。

为了进一步提高可读性,您可以使用抑制选项禁用科学记数法。这可确保小数字以标准表示法显示。

import numpy as np

x = np.random.random(10)
print(x)
# [ 0.07837821  0.48002108  0.41274116  0.82993414  0.77610352  0.1023732
#   0.51303098  0.4617183   0.33487207  0.71162095]

np.set_printoptions(precision=3)
print(x)
# [ 0.078  0.48   0.413  0.83   0.776  0.102  0.513  0.462  0.335  0.712]
登录后复制
y = np.array([1.5e-10, 1.5, 1500])
print(y)
# [  1.500e-10   1.500e+00   1.500e+03]

np.set_printoptions(suppress=True)
print(y)
# [    0.      1.5  1500. ]
登录后复制

如果您使用的是 NumPy 版本 1.15.0 或更高版本,您可以利用 numpy.printoptions 上下文管理器来本地化打印应用程序选项。在上下文中,应用所需的打印设置,但在外部恢复为默认设置。

x = np.random.random(10)
with np.printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]
登录后复制

为了防止从浮点数末尾删除零,您可以使用 np.set_printoptions 中的格式化程序参数。此参数允许您为每种数据类型指定格式函数。

np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print(x)
# Output: [ 0.078  0.480  0.413  0.830  0.776  0.102  0.513  0.462  0.335  0.712]
登录后复制

以上是如何在没有科学记数法的情况下以指定的精度漂亮地打印 NumPy 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板