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

对角矩阵单位矩阵_矩阵乘单位矩阵等于importnumpyasnp'''创建矩阵''''''创建矩阵:2维数组'''

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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.net/166559.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WiFi技术概述:WiFi那些事

    WiFi技术概述:WiFi那些事1概述WLAN是无线局域网络的简称,全称为WirelessLocalAreaNetworks,是一种利用无线技术进行数据传输的系统,该技术的出现能够弥补有线局域网络之不足,以达到网络延伸之目的。Wi-Fi是无线保真的缩写,英文全称为WirelessFidelity,在无线局域网才对范畴是指“无线兼容性认证”,实质上是一种商业认证,同时也是一种无线联网技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。同蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已经广泛应用于笔记本、手机

    2022年7月21日
    11
  • navicat如何连接本地数据库

    navicat如何连接本地数据库navicat如何连接本地数据库按win+r,输入cmd进入控制台。然后如图操作操作完成就可以进入navicat连接本地数据库了

    2022年5月6日
    149
  • 汇编指令大全

    汇编指令大全80×86指令系统,指令按功能可分为以下七个部分。(1)数据传送指令。(2)算术运算指令。(3)逻辑运算指令。(4)串操作指令。(5)控制转移指令。(6)处理器控制指令。(7

    2022年7月2日
    23
  • 提高系统可用性

    提高系统可用性计算机网络发展史首先前解释一下什么是计算机网络,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。计算机网络也称计算机通信网。关于计算机网络的最简单定义是:一些相互…

    2022年7月12日
    20
  • ipx防水等级表_说明知识运用的方法

    ipx防水等级表_说明知识运用的方法“××”是两位数字,第一位表示对固体的防护等级,第二位表示对液体的防护等级。固体防护等级有7个等级;液体防护等级有9个等级;防尘等级(固体防护等级有7个等级)0:没有保护1:防止大的固体侵入2:防止中等大小的固体侵入3:防止小固体进入侵入4:防止物体大于1mm的固体进入5:防止有害的粉尘堆积6:完全防止粉尘进入防水等级(液体防护等级有9个…

    2025年6月4日
    3
  • 进程调度的概念[通俗易懂]

    进程调度的概念[通俗易懂]调度的概念1.调度的基本概念在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、髙效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。2.调度的层次一个作业从提交开始直到完成,往往要经历以下三级调度

    2022年9月29日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号