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

NumPy运算报ValueError: operands could not be broadcast with shapes (2,6)(6,2)求助

报错原因
  • 你代码中使用的*在NumPy中是逐元素乘法运算符,要求两个参与运算的数组形状完全一致才能正常广播计算。你当前的转置结果t_1形状为(2,6),原差值数组t_2形状为(6,2),不符合逐元素乘法的形状要求,因此触发该报错。
  • 你预期的矩阵乘法不能通过*实现,需要改用NumPy专门的矩阵运算接口。
修正方案

矩阵乘法可以任选以下三种写法中的一种替换原代码的prod计算行即可:

  1. 使用@运算符(Python3.5及以上版本支持,可读性最高)
prod = t_1 @ t_2
  1. 使用np.dot通用矩阵乘法函数
prod = np.dot(t_1, t_2)
  1. 使用数组内置的dot方法
prod = t_1.dot(t_2)

修正后完整可运行代码如下:

import numpy as np
X = np.array([[-1, -1], [-2, -1.9], [-3, -2], [1.2, 1.5], [2.3, -1], [4.2, 7]])
s = np.eye(len(X), 2)
t_1 = (s - X).T
t_2 = (s - X)
prod = t_1 @ t_2

计算得到的prod为形状(2,2)的矩阵,符合矩阵乘法的维度运算规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:15:05