Python之数据分析(Numpy的子模块:线性代数模块linalg、傅里叶变换模块fft)

一、线性代数模块(linalg)

1、矩阵的逆

矩阵的逆:inv()该逆矩阵的前提必须是方阵
numpy.linalg.inv(A)

import numpy as np

# 创建一个矩阵
A = np.mat('1 2 3; 5 6 7; 9 8 5')
print(A)

# 用linalg下的inv求A的逆矩阵
B = np.linalg.inv(A)
print(B)

# 验证是否是逆矩阵
C = A * B  # numpy中的运算符号与python相通
print(C)

11

2、矩阵的线性解

解线性(一次)方程组:solve()或lstsq()
numpy.linalg.solve(A, B)或numpy.linalg.lstsq(A, B)[0]

import numpy as np

A = np.mat('1 -2 1; 0 2 -8; -4 5 9')  # 初始矩阵(3x3)
B = np.mat('0; 8; -9')  # 列向量
X1 = np.linalg.solve(A, B)
X2 = np.linalg.lstsq(A, B)[0]
print(X1, '\n', X2)

22

3、特征值与特征向量

定义: 对于n阶方阵A,如果存在数a和非零n维向量x,使得Ax=ax,则称a是矩阵A的一个特征值,x则是矩阵A特征值a的特征向量(不唯一)
两个都取: numpy.linalg.eig(A)
只取特征值: numpy.linalg.eigvals(A)

import numpy as np

A = np.mat('3 -2; 1 0')
eigvals, eigvecs = np.linalg.eig(A)  # 用两个对象来接收特征值和特征向量
print(eigvals)  # 特征值
print(eigvecs)  # 特征向量

# 证明特征值正确:Ax=ax
print(A * eigvecs[:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值