上节的numpy和scipy练习中,由于numpy和spicy相关函数较多,所以学习了网上的相关网站后,做一个小小的总结方便以后复习和学习之用,只是总结了部分知识,以后会在学习相关练习后不断更新。
一、建立数组和改变形状
(1)np.arange(start, stop, step, dtype=None )
例:np.arange(3) -> array([0, 1, 2])
np.arange(3.0) -> array([ 0., 1., 2.])
np.arange(3,7) -> array([3, 4, 5, 6])
np.arange(3,7,2) -> array([3, 5])
(2)np.zeros(shape, dtype, order='C')
建立一个给定形状和类型的用0填充的数组
例:np.zeros(3) -> array([ 0., 0., 0.])
np.zeros((3,), dtype=np.int) -> array([0, 0, 0])
(3)np.ones(shape, dtype, order='C')
建立一个给定形状和类型的用1填充的数组
例:np.ones(3) -> array([ 1., 1., 1.])
np.ones((3,), dtype=np.int) -> array([1, 1, 1])
(4)b=a.reshape(n,n)
例:a=[1,2,3,4]
b = a.reshape(2,2)
->b=[[1,2]
[3,4] ]
二、获取数组信息
1.获取数组每一维度的大小:a.shape
2.获取数组维度:a.ndim
3.元素个数:a.size
4.数组转置:a.T
三、创建矩阵方法
创建矩阵:np.mat()通过字符串格式创建,np.mat(array)通过数组创建
创建复合矩阵:np.bmat(‘A B’,’AB’),用A和B创建复合矩阵AB(字符串格式)
创建n*n单位矩阵:np.eye(n)
矩阵的转置:A.T
矩阵的逆矩阵:A.I
计算协方差矩阵:np.cov(a),np.cov(a,b)
计算矩阵的对角线元素和:a.trace()
相关系数:np.corrcoef(x,y)
给出对角线元素:a.diagonal()
四、跟线性代数相关的函数
估计线性模型中的系数:A=np.linalg.lstsq(x,b), 式子:b=A*x
求方阵的逆矩阵:np.linalg.inv(A)
求广义逆矩阵:np.linalg.pinv(A)
求矩阵的行列式:np.linalg.det(A)
解形如AX=b的线性方程组:np.linalg.solve(A,b)
求矩阵的特征值:np.linalg.eigvals(A)
求特征值和特征向量:np.linalg.eig(A)
Sad分解: U, Sigma,vd=np.linalg.svd(A)
svdvals()函数:s=np.linalg.svdvals(A), 得到对角线是奇异值的矩阵s,可用max(),min()求最大最小奇异值
五、概率分布
产生二项分布的随机数:np.random.binomial(n,p,size),其中n,p,size分别是每轮试验次数、概率、轮数
产生超几何分布随机数:np.random.hypergeometric(n1,n2,n,size=…),其中参数意义分别是物件1总量、物件2总量、每次采样数、试验次数
产生N个正态分布的随机数:np.random.normal(均值,标准差,N)
产生N个对数正态分布的随机数:np.random.lognormal(mean,sigma,N)