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

对角矩阵单位矩阵_矩阵乘单位矩阵等于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 科研神器(高效开发工具)

    科研神器(高效开发工具)

    2020年11月8日
    206
  • 因存储过程参数类型不匹配而造成OleDbCommand的不可用(一) (转)[通俗易懂]

    因存储过程参数类型不匹配而造成OleDbCommand的不可用(一) (转)[通俗易懂]因存储过程参数类型不匹配而造成OleDbCommand的不可用(一)(转)[@more@]因存储过程参数类型不匹配而造成OledbCommand的不可用XML:namespaceprefix=ons=”urn:…

    2022年5月19日
    28
  • Service Mesh详解

    Service Mesh详解ServiceMesh简介:这个词最早使用由开发Linkerd的Buoyant公司提出,并在内部使用。2016年9月29日第一次公开使用这个术语。2017年的时候随着Linkerd的传入,ServiceMesh进入国内技术社区的视野。最早翻译为“服务啮合层”,这个词比较拗口。用了几个月之后改成了服务网格。微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(SmallBuildingBlocks)为基础,利用模块化

    2025年5月31日
    4
  • 414aa[通俗易懂]

    414aa[通俗易懂]m=eval(input())ifm==1:print(“11”)elifm==2:print(“22”)elifm==3:print(“33”)else:print(“4444”)

    2022年6月9日
    54
  • Java实现Ip代理池

    Java实现Ip代理池设置Ip代理很多时候都会有用到,尤其是在写爬虫相关项目的时候。虽然自己目前没有接触这种需求,但由于最近比较闲,就写着当作练习吧爬取代理IP爬取关于爬取代理IP,国内首先想到的网站当然是西刺代理。首先写个爬虫获取该网站内的Ip吧。先对国内Http代理标签页面进行爬取,解析页面使用的Jsoup,这里大概代码如下privateList&amp;lt;IPBean&amp;gt;crawl(S…

    2022年6月9日
    155
  • 2021pycharm最新激活码【2021.7最新】[通俗易懂]

    (2021pycharm最新激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    59

发表回复

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

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