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

寻找用Pythonic方式部分填充NumPy数组的方法

解决NumPy数组部分填充的问题

正确的直接赋值方法

你只需要同时指定两个维度的切片范围,一行代码就能完成:

psi[:, :500] = b

为什么你的尝试会报错?

你写的psi[:][:500]其实等价于(psi[:])[:500]:

  1. psi[:]会返回原数组的一个视图,形状仍然是(3, 1000)
  2. 接着的[:500]是对这个视图的第一维进行切片,但原数组第一维只有3个元素,所以结果还是形状(3, 1000)的数组
  3. 这时候把形状为(3, 500)的b赋值进去,自然会因为维度不匹配触发ValueError

其他通用写法

如果想让代码适配更多场景(比如不确定b的具体维度时),可以用以下写法:

psi[:b.shape[0], :b.shape[1]] = b

或者用len()获取第一维长度:

psi[:len(b), :b.shape[1]] = b

内容的提问来源于stack exchange,提问作者bob.sacamento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:45:57