numpy 学习汇总13-numpy.linalg线性代数 ( 基础学习 tcy)

线性代数 2018/11/11
   
子模块numpy.linalg实现了基本的线性代数,建议使用scipy.linalg
==========================================================================
1.numpy.linalg
# MATLABR是相同的行业标准级Fortran
   
from numpy import *
from numpy.linalg import *
   
a = array([[ 1.0 , 2.0], [ 3.0,4.0]])# array([[1., 2.],[3., 4.]])
a.transpose()                             # array([[1., 3.],[2. , 4.]])
inv(a)    #计算方阵的逆              # array([[-2. , 1. ],[1.5, -0.5 ]])
u = eye( 2)   # unit 2x2matrix;    # array([[1.,  0.], [0.,  1.]])
   
j = array([[0.0 , - 1.0], [ 1.0,0.0 ]])
dot (j, j)   # matrix product          # array([[-1.,  0.],[ 0. , -1.]])
trace(u)  # 对角线元素和           # 2.0
   
y = array([[ 5.], [ 7.]])
solve(a, y)#解线性方程组Ax= b ,其中A 为一个方阵# array([[- 3.],[4.]])
   
eig(j)        #计算方阵的特征值和特征向量
                # (array([ 0.+1.j,  0. -1. j]),array([[0.70710678+0.j,  0.70710678+0. j],
                #       [ 0.00000000-0.70710678j, 0.00000000+0.70710678j]]))
   
X = np.random.randn(2, 2)# array([[-1.16823295,  0.01042582],[ 1.42594654,  0.30574199]])
mat= X. T. dot(X)               # array([[3.39809175, 0.42379195], [0.42379195, 0.09358686]])
inv(mat)#方阵的逆 # array([[ 0.67612198, -3.06170169], [-3.06170169, 24.54964847]])
mat.dot(inv(mat))              # array([[1., 0.],[0., 1.]])
q, r = qr(mat)
q,r
                                        # (array([[-0.99231268, -0.12375596], [-0.12375596,  0.99231268]]),
                                        #  array([[-3.42441633, -0.43211605],[ 0. , 0.04042065]]))
===========================================================================
2.备注

 

No 函数 说明
1 diag 以一维数组的形式返回方阵的对角线(或非对角线)元素,
2   或将一维数组转换为方阵(非对角线元素为0)
3 dot 矩阵乘法
4 trace 计算对角线元素的和
5 det 计算矩阵行列式
6 eig 计算方阵的特征值和特征向量
7 inv 计算方阵的逆
8 pinv 计算矩阵的Moore - Penrose伪逆
9 qr 计算QR分解
10 svd 计算奇异值分解( SVD)
11 solve 解线性方程组Ax= b ,其中A 为一个方阵
12 lstsq 计算Ax= b的最小二乘解

猜你喜欢

转载自blog.csdn.net/tcy23456/article/details/84312775