为什么NumPy矩阵赋值时会自动忽略小数部分?
问题成因
你在创建NumPy数组时,传入的初始值全是整数,NumPy会自动将数组的dtype(数据类型)推断为整数类型(常见为int32或int64,由运行环境决定)。整数类型的数组仅支持存储整数,你向其赋值浮点数时,NumPy会自动对数值做截断处理,只保留整数部分存入数组,因此你观察到小数部分丢失。
解决方法
- 初始化数组时显式指定浮点类型,即可支持存储小数:
# 可根据精度需求选择np.float32或np.float64 matrix = np.array([[0,0,0],[0,0,0]], dtype=np.float64)
- 若已完成数组初始化,可通过
astype方法转换为浮点类型:
matrix = matrix.astype(np.float64)
补充提示:你提供的代码片段中存在变量名不一致问题,初始化的变量名为matrix,赋值操作使用的变量名为rn,实际运行时需要注意修正变量名。
内容的提问来源于stack exchange,提问作者Kosu K.
相关产品推荐
相关产品推荐

