机器学习算法中,对矩阵的操作非常频繁,如果不熟悉矩阵的数学知识, 或者不太理解Python中对于矩阵操作的方法, 学习起来会寸步难行, 因此这篇笔记用于整理Python和数学相关的基础知识点,方便查阅。
1. Array创建矩阵, 矩阵转为Array
一般是从Array来创建, 各种编程语言都使用Array
import numpy as np
aArr=[
[6,2,3],
[4,5,6],
[2,7,1]
]
aMatrix=np.mat(aArr)
aArrNew=aMatrix.A
2. 矩阵取数,和排序
取第一行
aMatrix[0,:]
矩阵取第二列
aMatrix[:,1]
矩阵第二列排序
col=aMatrix[:,1]
col.sort(0)
矩阵第二行排序
line=aMatrix[2,:]
line.sort(1)
3 矩阵乘积的计算方法. 行数等于列数的时候可以相乘A矩阵的行乘以B矩阵的列, 每个元素相乘,最后结果相加
4. 行列式
二阶行列式的值就是主对角线相乘减去次对角线相乘得到的数值。
如果矩阵的行列式为0,那么就不能对这个矩阵计算矩阵
矩阵:
[[ 14. 62.]
[ 62. 308.]]
行列式值:
linalg.det 468.0 =14*308-62*62
行列式为0: 有2行或2列数值相同的情况, 有一行或一列全为0的情况;
5. 矩阵转置
把矩阵的行转为列, 把原来的列变成行
aMatrix.T 直接得到
[6,2,3]
[4,5,6]
[2,7,1]
转置后得到
[6,4,2]
[2,5,7]
[3,6,1]
6. 逆矩阵
矩阵: xTx.I inverse 矩阵求逆。 AB=BA=E
E的结果为:
[ 3+(-2) 1+-1
-6+6 -2+3 ]
aMatrix.I 得到矩阵的逆矩阵。 (如果矩阵的行列式值为0,那么计算逆矩阵是会出错的)
[[ 0.24342105 -0.125 0.01973684]
[-0.05263158 -0. 0.15789474]
[-0.11842105 0.25 -0.14473684]]
7. 矩阵转换成一维矩阵
aMatrix.flatten()
[
[6,2,3]
[4,5,6]
[2,7,1]
]
转换后:
[[6,2,3,4,5,6,2,7,1]]