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

Python中用一维数组为二维数组逐列赋值报错求助

NumPy矩阵赋值广播错误解决

错误原因

你写的matrix[0:3][i]等价于matrix[i],也就是取矩阵的第i行(形状为(15,)),但要赋值的series[0:3]是长度为3的一维数组,两者形状不匹配,因此触发广播错误。另外注意你创建的变量是matrixb,循环里却用了matrix,变量名要统一。

正确赋值方法

1. 循环赋值(逐列填充)

如果要把series[0:3]的值填充到矩阵的每一列,修改索引方式即可:

# 先统一变量名为matrixb
matrixb = np.zeros((3,15))
for i in range(15):
    # 取第i列,形状为(3,),和series[0:3]匹配
    matrixb[:, i] = series[0:3]

2. 无循环批量赋值(更高效)

如果所有列都要填充同一个series[0:3],利用NumPy广播机制直接批量赋值,无需循环:

# 将series转成(3,1)的二维数组,广播到(3,15)的矩阵
matrixb[:] = series[0:3].reshape(3, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:25:21