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

为什么将浮点列表赋值给Numpy数组行后元素未发生变更?

问题原因

你初始化data数组时传入的元素全是整数,numpy会自动将数组的dtype设置为整数类型(通常是int32或int64)。给整数类型的数组赋值浮点数时,numpy会自动对浮点数做截断处理,1.1会被直接转为整数1,因此看起来修改操作没有生效。

验证方式

你可以打印数组的dtype属性确认类型:

print(data.dtype)
# 输出为 int32 / int64 类整数类型

解决方案

方案1:创建数组时明确指定浮点类型

import numpy as np
data = np.array([[1,1,1],[2,3,4]], dtype=np.float64)
xdata = [i + 0.1 for i in data[0]]
print(xdata)
data[0] = xdata
print(data)

方案2:如果数组已创建,先做类型转换再修改

data = np.array([[1,1,1],[2,3,4]])
# 先转为浮点类型
data = data.astype(np.float64)
xdata = [i + 0.1 for i in data[0]]
print(xdata)
data[0] = xdata
print(data)

两种方案运行后都能得到你预期的输出结果。


内容的提问来源于stack exchange,提问作者narip

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:15:03