在Python的 Numpy模块中有很多关于矩阵乘法的方法,其中重点是 矩阵的点乘和叉乘,需要区分出来。
矩阵的点乘
就是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小
在 numpy 模块中 矩阵点乘是通过 multiply 函数或 * 运算符来实现
import numpy as np
m = np.array([[1,2,3],[4,5,6]])
n= np.array([[1,2,3],[4,5,6]])
'''
m=
[[1, 2, 3],
[4, 5, 6]]
n=
[[1, 2, 3],
[4, 5, 6]]
'''
print( m*n)
'''
输出:
[[ 1 4 9]
[16 25 36]]
'''
print(np.multiply(m,n))
'''
输出:
[[ 1 4 9]
[16 25 36]]
'''
矩阵的叉乘
要获得矩阵乘积,你可以使用 Numpy 的 matmul 函数 或者 dot函数。 此时要求前面矩阵的列数等于后面矩阵的行数
对于 matmul 函数 和 dot 函数 在二维矩阵乘法上结果相同,但是对于多维矩阵的结果 就不一定相同。
a=np.array([[1,2,3],[4,5,6]]) # 2行 3列
b=np.array([[1,2],[3,4],[5,5]]) # 3行 2列
'''
a=
[[1, 2, 3],
[4, 5, 6]]
b=
[[1, 2],
[3, 4],
[5, 5]]
'''
print(np.dot(a,b))
'''
输出:
[[22, 25],
[49, 58]]
'''
print(np.matmul(a,b))
'''
输出:
[[22, 25],
[49, 58]]
'''