打印numpy数组时如何仅去掉零值的科学计数法,是否可通过np.set_printoptions设置
Numpy数组打印全局配置方案
可以通过np.set_printoptions实现你要的全局打印效果,无需每次单独格式化数组。
配置代码
import numpy as np # 全局打印配置 np.set_printoptions( formatter={ # 自定义浮点数打印规则,12为元素总宽度,可根据实际需求调整 'float': lambda x: f"{0:<12}" if abs(x) < 1e-10 else f"{x:<12.4e}" } )
参数说明
- 阈值
1e-10可以根据你的业务场景调整,所有绝对值小于该阈值的数值都会被识别为零,自动消除负零问题,直接输出0 - 格式化字符串中的
12为每个元素的固定输出宽度,调整该值可以修改元素间距,保证所有行的内容自动对齐 .4e表示非零值保留4位小数的科学计数法输出,和你示例中的精度匹配,需要调整精度直接修改数字即可
效果验证
用你提供的数组测试,打印结果和你期望的输出效果完全一致。如果需要恢复numpy默认打印配置,执行以下代码即可:
np.set_printoptions(formatter=None)
内容的提问来源于stack exchange,提问作者ivy
相关产品推荐
相关产品推荐

