Python 矩阵与矩阵以及矩阵与向量的乘法

Python 矩阵与矩阵以及矩阵与向量的乘法,第1张

Python 矩阵与矩阵以及矩阵与向量的乘法

import numpy as np

numpy模块的array相乘时,有两种方式:一是矩阵形式,二是挨个相乘。


需要用矩阵形式相乘时,则要用np.dot()函数。


#矩阵与矩阵相乘
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
c = a.copy()
print(a * c)
print(np.dot(a, c))
#a*c 得出的结果是a和c中每个元素依次相乘,为3x3的矩阵
#np.dot(a, c) 得到的结果是a和c进行矩阵相乘,为3x3的矩阵 #矩阵与向量: a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([1,2,3])
print(a.shape) #(3,3)
print(b.shape) #(3,)
print(a*b)
#a中的每-行的每个数与b中的每一行的每个数都相乘(相加时也是一样,等价于b = [[1,2,3],[1,2,3],[1,2,3]]
#array([[1,4,9],[4,10,18],[7,16,27]]),
print(b*a) #这个结果与a*b是一样的 b = b.T
b.shape # 即使对b转置,b依然为(3,),b为行向量还是列向量时,是看具体用的时候在矩阵左边还是右边,会自动变换
#a 是3*3矩阵,b是3*1的矩阵,可以相乘
print(np.dot(a, b)) # array([14, 32, 50]),此时b当作一个3x1的列向量,得到的结果为(3,) #b是3*1的矩阵a 是3*3矩阵,从矩阵维度来说,不能直接相乘,python会自动转换
print(np.dot(b, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)
print(np.dot(b.T, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/586914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存