为什么给numpy数组元素加np.random.normal()后结果都是整数?
原因解释
- 你通过
np.arange(1,11)创建的数组y默认是*整数类型(int)*的,numpy数组的元素数据类型(dtype)在创建时就已经固定,不会自动变更类型。 - 当你把
y[i] + np.random.normal()计算得到的浮点数赋值给int类型数组的元素时,numpy会自动将浮点数强制转换为数组原有int类型,直接舍弃小数部分仅保留整数位,因此最终输出的所有值都是整数。
验证&解决方法
你可以先打印初始y的类型确认:
import numpy as np y = np.arange(1,11) print(y.dtype) # 输出为int32或int64类的整数类型
如果想要保留浮点数结果,创建数组时显式指定浮点类型即可:
y = np.arange(1, 11, dtype=np.float64)
内容的提问来源于stack exchange,提问作者aaa
相关产品推荐
相关产品推荐

