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

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


相关推荐

  • js手机号正则校验_正则表达式验证手机号码格式

    js手机号正则校验_正则表达式验证手机号码格式这篇文章主要介绍了2022手机号码JS正则表达式验证实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下​概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。简介正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字

    2022年9月15日
    1
  • 如何传输大文件(GB级别)

    如何传输大文件(GB级别)一、拆分:压缩工具,压缩并拆分为多个小文件。二、QQ离线传输QQ离线文件有限制条件:1.离线传送的文件,为用户保存7天,逾期接收方不接收文件,系统将自动删除该文件;2.离线传送的文件,单个文

    2022年7月4日
    19
  • printwriter用法_printwriter设置编码

    printwriter用法_printwriter设置编码PrintWriter的使用java.io.PrintWriter具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率,而PrintWriter就是通过连接它实现的缓冲功能(PW的很多构造方法内部自动连接它)。PW支持两个直接对文件写操作的构造方法:*…

    2022年8月10日
    9
  • 中国主流的大数据分析厂商

    中国主流的大数据分析厂商随着互联网和IT技术的推进,大数据的应用逐渐渗透到各行各业。尤其是数据体量大的互联网、金融、银行、制造行业。大数据正逐渐改变企业的运营模式,市场导向,进而惠及人们的生活。“大数据”这一概念最早在国外被提及。之后国内外兴起了一系列大数据技术,包括大数据硬件类、大数据分析类、大数据数据处理类等等,也因此诞生了一批大数据厂商。其中最为热门的是大数据分析技术,可以直接应用到企业生产经营,来带直…

    2022年5月17日
    42
  • 继电器驱动电路(各种单片机、CD4013触发器驱动电路图)

    继电器驱动电路(各种单片机、CD4013触发器驱动电路图)继电器工作原理详解(附3种驱动电路图)2019-09-1216:10继电器继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器的继电特性继电器的输入信号x从零连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻从y=0跳跃y=ym,即常开触点从断到通。一旦触点闭合,输入量x继续增大,输出信号.

    2022年6月24日
    26
  • One Piece1-541(ed2k)[通俗易懂]

    One Piece1-541(ed2k)[通俗易懂]1-143http://www.VeryCD.com/topics/143292/144-228http://www.VeryCD.com/topics/17082/229-325http://www.VeryCD.com/topics/39594/326-384http://www.VeryCD.com/topics/198051/385-458ht

    2022年10月19日
    0

发表回复

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

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