IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 金融数据分析与挖掘实战练习2.10 -> 正文阅读

[Python知识库]金融数据分析与挖掘实战练习2.10

# 2.10矩阵及线性代数的运算
# 2.10.1 创建矩阵
import numpy as np
mat1 = np.mat("1 2 3 ; 4 5 6 ; 7 8 9")
print(mat1)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
type(mat1)
numpy.matrix
mat2 = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
print(mat2)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
type(mat2)
numpy.matrix
# 将分块矩阵合并
arr1 = np.eye(3)
arr2 = 3 * arr1
print(arr1)
print(arr2)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[[3. 0. 0.]
 [0. 3. 0.]
 [0. 0. 3.]]
mat = np.bmat("arr1 arr2 ; arr1 arr2")
print(mat)
[[1. 0. 0. 3. 0. 0.]
 [0. 1. 0. 0. 3. 0.]
 [0. 0. 1. 0. 0. 3.]
 [1. 0. 0. 3. 0. 0.]
 [0. 1. 0. 0. 3. 0.]
 [0. 0. 1. 0. 0. 3.]]
# 2.10.2 矩阵的属性与基本运算
m1 = np.matrix(np.arange(4).reshape(2,2))
print(m1)
[[0 1]
 [2 3]]
mT = m1.T    #代表求m1的转置矩阵,行列互换
mH = m1.H    #代表求m1的共轭矩阵
mI = m1.I    #代表求m1的逆矩阵,与原矩阵相乘得单位矩阵
print(mT)
print(mH)
print(mI)
[[0 2]
 [1 3]]
[[0 2]
 [1 3]]
[[-1.5  0.5]
 [ 1.   0. ]]
#矩阵的基本运算
m2 = mat1 * 3  # 矩阵的数乘
m3 = mat1 + mat2 # 矩阵的加法
m4 = mat1 - mat2 # 矩阵的减法
m5 = mat1 * mat2 #矩阵的乘法
m6 = np.multiply(mat1,mat2) #点乘
print(m2)
[[ 3  6  9]
 [12 15 18]
 [21 24 27]]
print(m3)  #加法结果
print(m4)  #减法结果
[[ 2  4  6]
 [ 8 10 12]
 [14 16 18]]
[[0 0 0]
 [0 0 0]
 [0 0 0]]
print(m5)   #矩阵乘法,按矩阵乘法法则计算的结果
print(m6)  #点乘结果,对应位置相乘
[[ 30  36  42]
 [ 66  81  96]
 [102 126 150]]
[[ 1  4  9]
 [16 25 36]
 [49 64 81]]
mi = m1 * mI #验证矩阵乘以自身的逆矩阵是否等于单位矩阵
print(mi)
[[1. 0.]
 [0. 1.]]
m7 = mat1 ** 2  #矩阵的乘方
print(m7)
[[ 30  36  42]
 [ 66  81  96]
 [102 126 150]]
# 线性代数运算
# 1.计算逆矩阵(np.linalg.inv函数)
inverse = np.linalg.inv(m1)
print(inverse)
[[-1.5  0.5]
 [ 1.   0. ]]
# dot函数计算矩阵相乘
A = np.dot(m1,inverse)
print(A)
[[1. 0.]
 [0. 1.]]
# 2.求解线性方程组 Ax = b ,求解x,用np.linalg.solve函数求解
A1 = np.mat("1,-1,1 ; 2,1,0 ; 2,1,-1")   # 这种生成矩阵的方法,组内的逗号,可有可无
print(A1)
[[ 1 -1  1]
 [ 2  1  0]
 [ 2  1 -1]]
b = np.array([4,3,-1])
x = np.linalg.solve(A1,b)  # 求解线性方程组x的解
print(x)
[1. 1. 4.]
# 3.求特征根和特征向量
# 利用np.linalg.eigvals(A)求解 Ax = ax 成立时的a称为特征根,x称为a对应的特征向量
A2 = np.matrix([[1,0,2],[0,3,0],[2,0,1]])
t1 = np.linalg.eig(A2)  #输出特征根和对应的特征向量
print(t1)
(array([ 3., -1.,  3.]), matrix([[ 0.70710678, -0.70710678,  0.        ],
        [ 0.        ,  0.        ,  1.        ],
        [ 0.70710678,  0.70710678,  0.        ]]))
# 4.奇异值分解 ,将原始矩阵分解为U,V,Sigma三个矩阵的乘积,其中UV是正交矩阵
#用np.linalg.svd函数进行分解
A3 = np.mat("4.0,11.0,14.0 ; 8.0,7.0,-2.0")
qyz = np.linalg.svd(A3,full_matrices = False)
print(qyz)
(matrix([[ 0.9486833 , -0.31622777],
        [ 0.31622777,  0.9486833 ]]), array([18.97366596,  9.48683298]), matrix([[ 0.33333333,  0.66666667,  0.66666667],
        [ 0.66666667,  0.33333333, -0.66666667]]))
# 5.计算行列式的值,用np.linalg.det函数
A4 = np.mat("3,4 ; 5,6")
ah = np.linalg.det(A4)   #求解行列式的值
print(ah)
-2.0000000000000004

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:06:36  更:2022-04-04 12:10:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:44:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码