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

如何强制Python中Numpy数组的浮点数不使用科学计数法输出

问题翻译

我有一段代码,从文本格式读取数据并转换为浮点型Numpy数组,将数值乘以1000.0后打印该数组。我使用如下方式格式化数组输出(其中k为数组的标识字符串,v为数组本身):

out = f'{k.strip()} = ' + \
      np.array2string(v,
          prefix=f'{k} = ',
          precision=5,
          max_line_width=200,
          floatmode='maxprec'
      ) + '\n'

我期望得到如下格式的输出:

New.vals =         -80. -75. -70. -65. -60. -55. -50.

但实际输出通常采用科学计数法:

Typical.vals =         -8.00E+01 -7.50E+01 -7.00E+01 -6.50E+01 -6.00E+01 -5.50E+01 -5.00E+01

请问如何强制输出不使用科学计数法?

解决方案

要强制Numpy数组输出时不使用科学计数法,可通过以下两种方式修改np.array2string的参数:

方法1:使用suppress=True参数

该参数会抑制科学计数法显示,结合已有参数即可得到普通小数格式输出:

out = f'{k.strip()} = ' + \
      np.array2string(v,
          prefix=f'{k} = ',
          precision=1,  # 匹配示例格式设置为1位小数,可按需调整
          max_line_width=200,
          floatmode='maxprec',
          suppress=True  # 关键参数:禁用科学计数法
      ) + '\n'

方法2:自定义浮点数格式化器

如果需要更精细的格式控制,可通过formatter参数直接指定输出格式:

out = f'{k.strip()} = ' + \
      np.array2string(v,
          prefix=f'{k} = ',
          max_line_width=200,
          formatter={'float': lambda x: '{:.1f}'.format(x)}  # 自定义为1位小数格式
      ) + '\n'

若需要整数格式,可将{:.1f}改为{:.0f},完全按需求调整格式规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:35:09