前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对角矩阵单位矩阵_矩阵乘单位矩阵等于

对角矩阵单位矩阵_矩阵乘单位矩阵等于

作者头像
全栈程序员站长
发布2022-09-20 19:37:23
1.6K0
发布2022-09-20 19:37:23
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
import numpy as np '''------------------------------------创建矩阵---------------------------''' ''' 创建矩阵 : 2维数组 ''' #a = np.mat("1,2,3;4,5,6;7,8,9") a1 = np.array([[1,2,3],[4,5,6],[7,8,9]]) #使用mat()将array形式转换为矩阵 a = np.mat(a1) print(a) ''' [[1 2 3] [4 5 6] [7 8 9]] ''' print(a.__class__) #<class 'numpy.matrix'> print("-----\n") ''' tril和triu都是返回array形式 ''' ''' ------------------------------- triu()上三角矩阵 -------------------------''' ''' triu():提取矩阵上三角矩阵 (upper triangle of an array.) triu(m, k=0) m:表示一个矩阵 k:表示对角线的起始位置(k取值默认为0) ''' #k=0表示正常的上三角矩阵 b = np.triu(a,0) print(b) ''' [[1 2 3] [0 5 6] [0 0 9]] ''' print(b.__class__) #<class 'numpy.ndarray'> b1 = np.mat(b) print(b1.__class__) #<class 'numpy.matrix'> print("-----\n") #k=1表示对角线的位置上移1个对角线 c = np.triu(a,1) print(c) ''' [[0 2 3] [0 0 6] [0 0 0]] ''' print("-----\n") #k=-1表示对角线的位置下移1个对角线 d = np.triu(a,-1) print(d) ''' [[1 2 3] [4 5 6] [0 8 9]] ''' print("-----\n") ''' ------------------------------- tril()下三角矩阵 -------------------------''' ''' tril():提取矩阵下三角矩阵 (lower triangle of an array.) ''' #k=0表示正常的下三角矩阵 e = np.tril(a,0) print(e) ''' [[1 0 0] [4 5 0] [7 8 9]] ''' print(e.__class__) #<class 'numpy.ndarray'> e1 = np.mat(e) print(e1.__class__) print("-----\n") #k=1表示对角线的位置上移1个对角线 e = np.tril(a,1) print(e) ''' [[1 2 0] [4 5 6] [7 8 9]] ''' print("-----\n") #k=-1表示对角线的位置下移1个对角线 g = np.tril(a,-1) print(g) ''' [[0 0 0] [4 0 0] [7 8 0]] ''' print("-----\n") ''' -------------------------------------对角线--------------------------''' ''' diagonals:处理对角线函数 numpy.diag()返回一个矩阵的对角线元素 numpy.diag(v,k=0) 返回:以一维数组的形式返回方阵的对角线(或非对角线)元素 两次使用:np.diag() 将数组类型转化为矩阵:mat() ''' print(a) ''' [[1 2 3] [4 5 6] [7 8 9]] ''' print(a.__class__) #<class 'numpy.matrix'> print("-----\n") ''' 使用一次np.diag():二维数组提取出对角线上的元素返回一维数组 ''' #k=0 正常的对角线的位置 h = np.diag(a, k=0) print(h) #[1 5 9] #返回方阵的对角线元素 print(h.ndim) #1 print(h.__class__) #<class 'numpy.ndarray'> #将数组转为矩阵形式 h1 = np.mat(h) print(h1.__class__) #<class 'numpy.matrix'> print("-----\n") #k=1表示对角线的位置上移1个对角线 i = np.diag(a, k=1) print(i) #[2 6] print(i.__class__) #<class 'numpy.ndarray'> print("-----\n") #k=-1表示对角线的位置下移1个对角线 j = np.diag(a, k=-1) print(j) #[4 8] print("-----\n") ''' 使用两次np.diag() 获得二维矩阵的对角矩阵 先将主对角线的元素提取出来,形成一维数组 再将一维数组中的每个元素作为主对角线上面的元素形成二维数组 ''' #np.diag(a):[1 5 9] k = np.diag(np.diag(a)) print(k) ''' [[1 0 0] [0 5 0] [0 0 9]] ''' #除对角线以外的元素均为零 print(k.ndim) #2 print("-----\n") ''' 一维数组 ''' #一维数组将数组中的每个元素作为对角线上元素形成二维数组; l = np.array([1,2,3,4]) l1 = np.diag(l) print(l1) ''' [[1 0 0 0] [0 2 0 0] [0 0 3 0] [0 0 0 4]] ''' print("-----\n") l2 = np.diag(l1) print(l2) #[1 2 3 4] print("-----\n") m1 = np.tril(a, k=0) print(m1) ''' [[1 0 0] [4 5 0] [7 8 9]] ''' print("-----\n") m2 = np.tril(a, k=1) print(m2) ''' [[1 2 0] [4 5 6] [7 8 9]] ''' print("-----\n") m3 = np.tril(a, k=-1) print(m3) ''' [[0 0 0] [4 0 0] [7 8 0]] ''' print("-----\n") m4 = m1-m2 print(m4) ''' [[ 0 -2 0] [ 0 0 -6] [ 0 0 0]] ''' print("-----\n") ''' 正常的下三角减去下三角 ''' m = m1 - m3 print(m) ''' [[1 0 0] [0 5 0] [0 0 9]] ''' print("-----\n") '''--------------------------------------单位矩阵----------------------------''' ''' 创建单位矩阵借助identity()函数 n*n的单位数组 返回数组类型 ''' help(np.identity) ''' identity(n, dtype=None) 接受的参数有两个:第一个是n值大小,第二个为数据类型(默认float) out : ndarray `n` x `n` array with its main diagonal set to one, and all other elements 0. 主对角线元素为1,其他元素均为零 ''' print("-----\n") n = np.identity(3) print(n) ''' [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] '''
对角矩阵单位矩阵_矩阵乘单位矩阵等于
对角矩阵单位矩阵_矩阵乘单位矩阵等于
对角矩阵单位矩阵_矩阵乘单位矩阵等于
对角矩阵单位矩阵_矩阵乘单位矩阵等于
对角矩阵单位矩阵_矩阵乘单位矩阵等于
对角矩阵单位矩阵_矩阵乘单位矩阵等于

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166559.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档