一、Matrix和Array
Matrix名为矩阵,Array名为阵列,它们都可以作为矩阵运算的结构,功能上Matrix是Array的子集,Matrix运算符相较于Array简单。
二、Matrix和Array的相互转换
<class 'list'> <class 'list'> <class 'list'>
[[1 2 3]]
<class 'numpy.matrix'>
[1 2 3]
<class 'numpy.ndarray'>
<class 'numpy.matrix'>
三、矩阵乘法--multiply()、dot()、 matmul()、' * '、'@'辨析
注意:所有的一维向单独看时,都当成是列向量(竖着放的),虽然打印的时候是横着放!!!
元素相乘:multply()矩阵相乘:dot()、matmul()、’@’’ * ': 在数组操作中,作为元素相乘;在矩阵操作中作为矩阵相乘
在数组Array上操作
* 在数组操作中,作为元素相乘[[ 1 4 9]
[ 4 10 18]]
@ 在数组操作中,作为矩阵相乘[14 32]
* 在数组操作中,作为元素相乘[1 4 9]
@ 在数组操作中,作为矩阵相乘14
multiply 在数组操作中,作为元素相乘[[ 1 4 9]
[ 4 10 18]],[1 4 9]
dot在数组操作中,作为矩阵相乘[14 32],14
matmul在数组操作中,作为矩阵相乘[14 32],14
在矩阵上操作
* 在矩阵上操作中[[14]
[32]]
@ 在矩阵上操作中[[14]
[32]]
multiply 在矩阵上操作中,对应元素相乘[[ 1 4 9]
[ 4 10 18]]
dot 在矩阵上操作中,对矩阵相乘[[14]
[32]]
matmul 在矩阵上操作中,对矩阵相乘[[14]
[32]]
四、矩阵的转置和逆
关键点:注意矩阵是否可逆
Matrix转置[[1]
[2]
[3]]
Array的转置[1 2 3]
Matrix转置[[5 4 9]]
Array的转置[[5 4 9]]
Matrix的逆为[[-2. 1. ]
[ 1.5 -0.5]]
Array的逆为[[-2. 1. ]
[ 1.5 -0.5]]
五、关于shape和一维向量
例如:a,b的shape为 (3, ),计算 a*b
关键就在这一步的转换,此处有两个向量相乘,那么:
谁在左边,就在左边添加维度1:,a 在左,那么 a 的 shape 运算时为 (1,3)
谁在右边,就在右边添加维度1:,b 在右,那么 b 的 shape 运算时为 (3,1)