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

如何修改二维numpy数组中的指定子数组?赋值失败问题求解

问题根因

你的pontos数组初始化时被设置为整数类型(int),numpy对整数类型数组赋值浮点数时,会自动截断小数部分取整。你计算得到的novoP实际值为[0. 0. 0.33333333],赋值到int类型的pontos[i]时,0.33333333被截断为0,最终输出全0结果。

解决方案

  • 方法1:创建pontos时显式指定浮点类型
    若你需要保留小数精度,初始化数组时指定dtype为浮点类型即可,示例:
    # 8行3列的浮点型数组,根据需求选np.float32或np.float64
    pontos = np.zeros((8, 3), dtype=np.float64)
    
  • 方法2:已创建的数组可先转换类型再赋值
    如果pontos已经初始化完成,先做类型转换再执行赋值操作:
    # 转换为浮点类型,必须赋值回原变量才会生效
    pontos = pontos.astype(np.float64)
    # 再执行赋值
    pontos[i] = novoP
    
  • 快速验证:你可以在赋值前添加一行print(pontos.dtype),如果输出为int32/int64就符合上述问题场景,修改类型后即可正常赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:09:03