最近,学了numpy库,颇有心得,能够快速解决一些问题,下面就来给大家分享分享。
并推荐大家看看这个numpy的强大之处;
1线性代数问题:
在线性代数里面常见的就是矩阵的加减乘和逆矩阵,求解方程组的问题;
(1)逆矩阵问题:
在线性代数中求矩阵的逆矩阵常用的方法有以下三种:
(求余子式)
(矩阵分块)
(化行阶梯将矩阵与单位矩阵转化为增广矩阵,前者为单位阵)
今天来介绍用numpy库来实现逆矩阵的求解;
A矩阵=[[1,0,2],[4,2,1],[1,2,0]]三行三列的矩阵;
B矩阵为其逆矩阵,
eg:
调用numpy库的linalg.inv(),就可实现逆矩阵的求解;
(2)求解方程组问题;
eg:
x-y-z=2
2x-y-3z=1
3x+2y-5z=0
求x,y,z值
程序代码如下:
import numpy as np
A=np.mat(“1 -1 -1;2 -1 -3;3 2 -5”)
B=np.array([2,1,0])
result=np.linalg.solve(A,B)
print(“x={},y={},z={}”.format(result[0],result[1],result[2]))
其中A是未知数的系数,一行3个;B为方程组等式右边的值,分别为2,1,0
调用np.linalg.solve(),将A,B作为参数传入,便可得到答案x=5,y=0,z=3;
(3)矩阵的加减乘;
2其他数学问题:
求一组数据的方差,标准差
在数学中,就会去求平均数和每组数据与平均数的差的平方,算起来比较麻烦;
在numpy库中调用ndarray.sd()和ndarray.var()就可以实现;
numpy里面还有解决许多常见的数学问题的方法,例如,求向量的积,三角函数,对数函数,指数函数,随机函数,概率统计的常见的分布函数,积分等,可以快速帮助我们解决问题。