如何将float类型numpy数组转换为int类型并保存为纯整数文本?
实现纯整数输出的修改方法
问题原因
原有代码输出科学计数法浮点数有两个核心原因:
- 对float类型数组做四舍五入、求和操作后,输出结果仍然是float类型
np.savetxt默认使用浮点格式输出,数值范围符合触发条件时就会自动转为科学计数法
解决方案
方案1:提前转换数组类型+指定存储格式(推荐,兼容性更好)
先将求和后的float数组转为int类型,存储时指定整数格式:
npW_x = np.array(my_np_array) npW_round_111 = np.around(npW_x, decimals=0) sum_x_111 = np.sum(npW_round_111, axis=1) # 转换为int类型,自动适配四舍五入后的结果 sum_x_111_int = sum_x_111.astype(np.int32) # fmt参数指定为%d,代表输出整数格式 np.savetxt("file1.txt", sum_x_111_int, fmt="%d")
方案2:直接在存储时指定格式(更简洁)
不需要提前转换数组类型,直接通过fmt参数强制输出整数,np.savetxt会自动做类型转换:
npW_x = np.array(my_np_array) npW_round_111 = np.around(npW_x, decimals=0) sum_x_111 = np.sum(npW_round_111, axis=1) np.savetxt("file1.txt", sum_x_111, fmt="%d")
补充说明
- 如果需要调整整数输出样式,比如固定宽度、补前导零,可以修改
fmt参数,例如fmt="%04d"会输出4位宽度的整数,不足位数前面补0 - 如果不需要四舍五入,而是要向下取整/向上取整,可以把
np.around替换为np.floor或np.ceil即可
内容的提问来源于stack exchange,提问作者user366312
相关产品推荐
相关产品推荐

