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

如何强制numpy数组打印时使用科学计数法

NumPy数组统一科学计数法打印解决方案

以下两种方案均可满足需求,可根据使用场景选择:

方案1:全局生效配置(推荐)

修改NumPy全局打印参数,后续所有数组打印默认都采用科学计数法格式:

  1. 配置代码:
import numpy as np

# 可自行调整大括号内的格式规则,示例为保留6位小数的科学计数法
# 如需保留2位小数可修改为 '{:.2e}'.format
np.set_printoptions(formatter={'float': '{:e}'.format})
  1. 效果测试:
test_arr = np.array([0.0000456, 3.45, 7890000])
print(test_arr)
# 输出示例:[4.560000e-05 3.450000e+00 7.890000e+06]
  1. 恢复默认格式:
np.set_printoptions(formatter=None)

方案2:仅临时格式化单个数组(不影响全局配置)

如果只需要给指定数组做格式化输出,不需要改动全局设置,可选以下两种实现:

实现1:使用np.array2string

test_arr = np.array([0.0000456, 3.45, 7890000])
formatted_str = np.array2string(test_arr, formatter={'float': '{:.2e}'.format})
print(formatted_str)
# 输出示例:[4.56e-05 3.45e+00 7.89e+06]

实现2:适配numpy.format_float_scientific到数组

如果你需要用到numpy.format_float_scientific的专属参数能力,可以用np.vectorize包装标量函数后处理数组:

import numpy as np
from numpy import format_float_scientific

# 包装为数组兼容的格式化函数
vec_sci_format = np.vectorize(lambda x: format_float_scientific(x, precision=2))
test_arr = np.array([0.0000456, 3.45, 7890000])
print(vec_sci_format(test_arr))
# 输出示例:['4.6e-05' '3.4e+00' '7.9e+06']

注意:该实现返回的是字符串数组,仅可用于打印输出,不能用于后续数值计算。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:24:03