将列表转换为numpy数组时如何保留数值精度?
问题
将初始结果存储在int_list中,转换为numpy数组时能否保留数值精度?
代码
print(int_list) int_list = np.array(int_list) print(int_list)
运行结果
[0.027442146241428052, 0.14086078558393686, 0.20105874001152255, 0.09721367288504784, 0.01733800399804374] [0.02744215 0.14086079 0.20105874 0.09721367 0.017338 ]
解答
其实numpy数组并没有丢失精度,只是默认打印时会截断小数位数,让输出更简洁。
- 你可以查看数组的
dtype确认:默认转换得到的浮点数数组一般是float64类型,和Python原生浮点数精度一致,能完整存储原始数值。 - 如果想让numpy打印时显示完整精度,可设置打印选项:
这样就能看到和原列表一致的完整小数位。np.set_printoptions(precision=16) print(int_list) - 直接访问数组单个元素,比如
print(int_list[0]),也能看到原始的高精度数值。
内容的提问来源于stack exchange,提问作者Formal_this
相关产品推荐
相关产品推荐

