机器学习算法原理与编程学习(3)

接上一节,在矩阵基本运算的基础上,NumPy的Linalg库可以满足大多数的线性代数运算。本节继续借用库来对矩阵的行列式、逆、对称、秩和可逆矩阵求解线性方程组。

1. 矩阵的行列式

from numpy import *
# n阶方阵的行列式运算
A = mat([[1,2,4,5,7],[9,12,11,8,2],[6,4,3,2,1],[9,1,3,4,5],[0,2,3,4,1]])
print "det(A):",linalg.det(A);  # 方阵的行列式

输出结果:

det(A): -812.0

2. 矩阵的逆

from numpy import *
# n阶方阵的行列式运算
A = mat([[1,2,4,5,7],[9,12,11,8,2],[6,4,3,2,1],[9,1,3,4,5],[0,2,3,4,1]])
invA = linalg.inv(A)    # 矩阵的逆
print "inv(A):",invA

输出结果:

inv(A): [[ -7.14285714e-02  -1.23152709e-02   5.29556650e-02   9.60591133e-02
   -8.62068966e-03]
 [  2.14285714e-01  -3.76847291e-01   1.22044335e+00  -4.60591133e-01
    3.36206897e-01]
 [ -2.14285714e-01   8.25123153e-01  -2.04802956e+00   5.64039409e-01
   -9.22413793e-01]
 [  1.66901077e-16  -4.13793103e-01   8.79310345e-01  -1.72413793e-01
    8.10344828e-01]
 [  2.14285714e-01  -6.65024631e-02   1.85960591e-01  -8.12807882e-02
   -1.46551724e-01]]

3. 矩阵的对称

from numpy import *
A = mat([[1,2,4,5,7],[9,12,11,8,2],[6,4,3,2,1],[9,1,3,4,5],[0,2,3,4,1]])
AT = A.T    # 矩阵的对称
print A*AT

输出结果:

[[ 95 131  43  78  43]
 [131 414 153 168  91]
 [ 43 153  66  80  26]
 [ 78 168  80 132  32]
 [ 43  91  26  32  30]]

4. 矩阵的秩

# -*- coding: utf-8 -*-
from numpy import *
A = mat([[1,2,4,5,7],[9,12,11,8,2],[6,4,3,2,1],[9,1,3,4,5],[0,2,3,4,1]])
print linalg.matrix_rank(A)   # 矩阵的秩

B = mat([[1,2,3],[4,5,6],[2,4,6]])
print linalg.matrix_rank(B)

输出结果:

5
2

5. 可逆矩阵求解

from numpy import *
A = mat([[1,2,4,5,7],[9,12,11,8,2],[6,4,3,2,1],[9,1,3,4,5],[0,2,3,4,1]])
b = [1,0,1,0,1]
S = linalg.solve(A,b)
print S

输出结果:

[-0.0270936   1.77093596 -3.18472906  1.68965517  0.25369458]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值