Python机器学习快速入门系列2: 矩阵数学知识整理

manongpengzai 2017-02-03

机器学习算法中,对矩阵的操作非常频繁,如果不熟悉矩阵的数学知识, 或者不太理解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矩阵的列, 每个元素相乘,最后结果相加
Python机器学习快速入门系列2: 矩阵数学知识整理
Python机器学习快速入门系列2: 矩阵数学知识整理
 
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

Python机器学习快速入门系列2: 矩阵数学知识整理
 
Python机器学习快速入门系列2: 矩阵数学知识整理
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]]
 
 
 

相关推荐