NumPy中array和matrix用于矩阵乘法时的区别

  在NumPy中,array用于表示通用的N维数组,matrix则特定用于线性代数计算。array和matrix都可以用来表示矩阵,二者在进行乘法操作时,有一些不同之处。

  使用二维的array时,运算符 * 用于计算逐元素相相乘,函数 dot() 用于计算矩阵相乘,例子如:

运行结果为:

可见,当a和b为array时, a * b 计算了a和b的数量积(对应Matlab的 a .* b ), dot(a, b) 计算了a和b的矢量积(对应Matlab的 a * b )。

  与array不同的是,使用matrix时,运算符 * 用于计算矩阵相乘,函数 multiply() 用于计算逐元素相乘,例子如:

运行结果为:

可见,当使用matrix时,无论是生成矩阵还是计算,Numpy的风格和Matlab更加贴近,降低了语言切换时的负担。