Skip to main content
 首页 » 编程设计

python之Numpy 列和行向量

2025年05月04日11cloudgamer

为什么在 numpy 中可以将 2x2 矩阵乘以 1x2 行向量?

import numpy as np 
 
I = np.array([[1.0, 0.0], [0.0, 1.0]]) 
x = np.array([2.0,3.0]) 
 
In: I * x 
Out: array([[ 2.,  0.], [ 0.,  3.]]) 

转置 x 也没有任何意义。一个行向量仍然是一个行向量?

In: x.T 
Out: array([ 2.,  3.]) 

从数学的角度来看,表示非常困惑。

请您参考如下方法:

Numpy 数组不是向量。或重要的矩阵。它们是数组。

它们可以用来表示向量、矩阵、张量或任何你想要的东西。然而,numpy 的天才在于表示数组,并让用户决定它们的含义。

在数组上定义的一个操作是(逐项)乘法。此外,广播允许您通过在缺失的维度中“扩展”它来对不同形状的数组进行操作,因此您的乘法实际上是(逐项)乘法:

[[1.0, 0.0], [0.0, 1.0]] * [[2.0, 2.0], [3.0, 3.0]] 

如果你想使用点积,在矩阵意义上,你应该使用 .dot 方法,它就是这样做的:将它的输入解释为向量/矩阵/张量,然后做一个点积。