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

Python中序列转置后内积运算异常?是否为Bug?

关于NumPy一维数组矩阵乘法的疑问解答

这不是Bug,是NumPy对一维数组(秩为1的数组)的设计逻辑导致的,具体原因如下:

  • 你定义的u = np.array([0,1,1,1])是一维数组,形状为(4,),它既不是传统意义上的行向量(形状(1,4)),也不是列向量(形状(4,1))。
  • 一维数组的转置操作u.T不会改变其形状,因为它只有一个轴,没有可交换的维度,u.T和u是完全相同的数组。
  • @运算符对一维数组执行的是内积运算,所以不管是u @ u.T还是u.T @ u,本质都是两个一维数组的内积,结果自然是标量。

如果想要得到矩阵形式的结果,需要将一维数组转换为二维的行/列向量,示例代码如下:

import numpy as np
# 转为列向量(形状(4,1))
u_col = np.array([[0,1,1,1]]).T
# 转为行向量(形状(1,4))
u_row = np.array([[0,1,1,1]])

print(u_col @ u_row)  # 输出4×4的矩阵
print(u_row @ u_col)  # 输出标量

内容的提问来源于stack exchange,提问作者r-learning-machine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:27