机器学习中用到的线性代数,就是为了把复杂的计算放在矩阵里计算。
创建矩阵
import numpy as np #导入numpy库 A = np.array([[3,4],[2,16]]) #创建矩阵 B = np.array([[1,2],[5,6]])
矩阵加法
import numpy as np #线性代数 A = np.array([[3,4],[2,16]]) B = np.array([[1,2],[5,6]]) print(A+B) #矩阵加法 #-----------输出结果------------ #[[ 4 6] # [ 7 22]]
如果没用用np.array创建矩阵则会输出以下这样
A1 = [[3,4],[2,16]] B1 = [[1,2],[5,6]] print(A1+B1) #-----------输出结果----------- #[[3, 4], [2, 16], [1, 2], [5, 6]]
矩阵乘法(与实数相乘)
import numpy as np A = np.array([[3,4],[2,16]]) B = np.array([[1,2],[5,6]]) print(2*A) #矩阵乘法,如果不用array就是输出2次A矩阵 #-----------输出结果------------ #[[ 6 8] # [ 4 32]]
矩阵乘法(矩阵相乘),不遵循交换律(逆矩阵特殊),遵循结合律。
import numpy as np A = np.array([[3,4],[2,16]]) B = np.array([[1,2],[5,6]]) print(np.dot(A,B)) #矩阵相乘 #-----------输出结果------------ #[[ 23 30] # [ 82 100]]
矩阵转置:将矩阵沿着45度角翻转
import numpy as np C = np.array([[1,2,3],[4,5,6]]) print(C.T) #C的转置矩阵 #-----------输出结果------------ #[[1 4] # [2 5] # [3 6]]
逆矩阵:与原矩阵相乘等于单元矩阵(1)
import numpy as np A = np.array([[3,4],[2,16]]) B = np.linalg.inv(A) #求A的逆矩阵赋给B print(B) print(np.dot(A,B)) print(np.dot(B,A)) #-----------输出结果------------ #B: #[[ 0.4 -0.1 ] # [-0.05 0.075]] #A*B #[[ 1. 0.] # [ 0. 1.]] #B*A #[[ 1. 0.] # [ 0. 1.]]