Python中如何使NumPy数组运算后元素输出保留9位小数
NumPy数组固定输出9位小数的实现方法
NumPy默认打印数组时最多显示8位小数,且会自动省略末尾无意义的0,要实现所有元素固定显示9位小数的效果,直接调整打印配置即可,不需要修改数组本身的运算逻辑。
具体实现方法
核心是调用np.set_printoptions()配置全局打印规则,同时注意将整数数组转为浮点类型(整数类型默认不会显示小数部分):
import numpy as np # 配置打印规则:固定小数位为9位,不省略末尾0 np.set_printoptions(precision=9, floatmode='fixed') # 定义数组时指定为浮点类型,也可在运算后用A1 = A1.astype(np.float64)转浮点 A = np.array([[1,2,3],[4,5,6],[7,8,9]], dtype=np.float64) A1 = A * 2 print([A1])
运行上述代码即可得到完全符合预期的输出:
[array([[ 2.000000000, 4.000000000, 6.000000000], [ 8.000000000, 10.000000000, 12.000000000], [14.000000000, 16.000000000, 18.000000000]])]
关键说明
precision=9:指定打印时小数部分保留9位floatmode='fixed':强制所有浮点数按固定小数位显示,不自动省略末尾的0,是实现.000000000显示效果的必要参数- 如果不想修改全局打印配置,也可以在打印时单独对单个数组做格式化,不会影响代码其他位置的NumPy数组打印效果:
print([np.array2string(A1.astype(np.float64), precision=9, floatmode='fixed')]) - 上述配置仅修改数组的打印展示格式,不会改变数组内部存储的数值精度,对后续数组运算的准确性没有任何影响。
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

