You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python中的NumPy数组不显示e+00这类科学计数法格式?

如何将NumPy数组的科学计数法显示改为常规数字格式?

你使用np.column_stack生成的NumPy数组默认以科学计数法显示,例如:

f = np.array([[3.00000000e+00, 9.04392878e+00, 8.69169589e+00, 1.20000000e+04, 7.00000000e+00, 
               7.21376000e+07, 3.00000000e+00], [2.00000000e+00, 6.38373979e+00, 
               7.75724682e+00, 1.40000000e+04, 9.00000000e+00, 8.25648000e+07, 
               2.00000000e+00]])

希望改为常规数字格式,比如:

f = np.array([[3, 9.04392877641821 , 8.691695889412165, 12000, 7, 72137600, 3],[2, ...]])

可以通过以下几种方法实现:

  • 修改全局打印选项
    使用np.set_printoptions配置全局输出格式,抑制科学计数法并设置小数精度:

    import numpy as np
    # 抑制科学计数法,保留10位小数
    np.set_printoptions(suppress=True, precision=10)
    print(f)
    

    配置后,后续所有NumPy数组的打印都会遵循这个格式,整数会自动显示为整数形式,小数保留指定位数。

  • 单个数组自定义格式化输出
    若不想修改全局设置,可使用np.array2string针对单个数组定制输出:

    print(np.array2string(f, suppress_small=True, precision=10, separator=', '))
    

    参数说明:

    • suppress_small=True:抑制极小值的科学计数法
    • precision=10:控制小数显示的位数
    • separator=', ':设置元素间的分隔符
  • 转换为混合数据类型(可选)
    如果数组中的整数都是精确值,可以将数组转换为object类型,让整数以整数形式显示,小数保留原精度:

    f_mixed = f.astype(object)
    # 手动修正整数元素,确保显示为int类型
    for row in f_mixed:
        for i in range(len(row)):
            if row[i].is_integer():
                row[i] = int(row[i])
    print(f_mixed)
    

    注意:这种方法会改变数组的数据类型,可能影响后续数值计算的性能,仅在需要格式化显示且不频繁计算时使用。

内容的提问来源于stack exchange,提问作者Agustin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:08:20