Abstract:使用numpy进行矩阵的加减乘除、转置、求逆、求特征向量等运算。
import numpy库:import numpy as np
创建矩阵:a = np.mat([[x1, x2,…,xn], [y1, y2, …, yn]])
矩阵乘法:
- a * b
- np.dot(a, b ):求两数组点积
矩阵加减:a - b
矩阵转置:
- a.T
- a.transpose()
矩阵除法:a/b
矩阵求逆:
- a.I
- np.linalg.inv(a)
求特征向量:np.linalg.eig(a)
求迹:np.trace(a)
求行列式的值:numpy.linalg.det()
求两个数组的矩阵乘积:numpy.matual(a, b)
求矩阵形式的线性方程的解:numpy.linalg.solve()
延伸:numpy.linalg 模块里还有很多矩阵运算的方法,感兴趣的可以去了解下 (在文末的Extender里给出了学习材料 Tutorials Numpy 教程)~
关于矩阵乘法需要注意:
矩阵乘法规定,只有当第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。
若a为 m x p 的矩阵,B为 p x n的矩阵,则 a x b 的结果是 m x n的矩阵。
若两矩阵行列数不满足上面的条件,可以对矩阵进行转置。
维度数不符合要求,则不能执行矩阵乘法。
2.NUMPY 数组语法
随机生成数组:np.random.rand(m, n)
创建数组:np.array([[x1, x2,…,xn], [y1, y2, …, yn]])
向数组添加元素:np.append(A, a_i)
数组索引:A[2:5] 表示索引数组 A 中第 3 到第 5 个元素
3. 实例(求多元回归最小二乘估计)
多元回归方程参数最小二乘估计的公式:
代码实例:
import numpy as np X = np.mat([[1,1,1,1,1,1,1,1,1,1,1,1,1,1],[41, 45, 51, 52, 59, 62, 69,72, 78, 80, 90, 92, 98, 103], [49, 58, 62, 71, 62, 74, 71, 74, 79, 84, 85, 94, 91, 95]]) X=X.T Y = np.mat([28, 39, 41, 44, 43, 50, 51, 57, 63, 66, 70, 76, 80, 84]).T B = (X.T * X).I * X.T * Y print B
[[-15.93836228] [ 0.52227044] [ 0.47382726]]
4.EXTENDER
【非常全的教程】TutorialsPoint Numpy 教程
70个NumPy练习:在Python下一举搞定机器学习矩阵运算
btw:
Github: https://github.com/ScarlettYellow
个人博客:https://scarletthuang.cn/