You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么给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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:18:02