@TOCpython 矩阵向量乘积整理
- 运算 multiply (若x,y同为行/列向量,则简单的对应点对应相乘)
multiply 运算每个数字对应相乘:
1)单纯列表
x = [1,2,3]
y = [1,1,4]
mul = multiply(x,y)
print(type(mul))
print(mul)
result:
2) array
x = array([1,2,3])
y = array([1,1,4])
mul = multiply(x,y)
print(type(mul))
print(mul)
result:
3)mat
x = mat([1,2,3])
y = mat([1,1,4])
mul = multiply(x,y)
print(type(mul))
print(mul)
result:
4)mat,但x,y为行、列向量
x = mat([1,2,3])
y = mat([1,1,4])
mul = multiply(x,y.T)
print(type(mul))
print(mul)
result:
- 运算 *
‘ * ’ ,与multiply类似,不过不能用于列表,mat形式为向量点乘
1)array
x = array([1,2,3])
y = array([1,1,4])
mul = x*y
print(type(mul))
print(mul)
result:
2)mat,要求行列向量维度对齐(m×n * n×d = m×d)
x = mat([1,2,3])
y = mat([1,1,4])
mul = x*y.T
print(type(mul))
print(mul)
result:
- dot(x,y):为向量点乘
1)list
x = [1,2,3]
y = [1,1,4]
mul = dot(x,y)
print(type(mul))
print(mul)
result:
2)array
x = array([1,2,3])
y = array([1,1,4])
mul = dot(x,y)
print(type(mul))
print(mul)
result:
3)mat
x = mat([1,2,3])
y = mat([1,1,4])
mul = dot(x,y.T)
print(type(mul))
print(mul)
result:
总结:
- multiply(x,y)为对应数字对应相乘,返回一个向量(或矩阵),对mat形式也不例外
- ‘*’ ,mat形式的为点乘,其它为对应点相乘,list格式不能使用!
- dot(x,y)为点乘。
当mat格式为点乘时,要注意前一个的列与后一个的行对齐!