10-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

news2024/11/15 16:23:41

矩阵及其运算

[ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} a11am1a1namn

矩阵就是二维数组,上面是一个 m 乘 n 的矩阵,它有 m 行,n 列,每行每列上面都有一个 元素,每个元素都有行标 i 和列标 j, 对应的元素就是
a i j a_{ij} aij
矩阵是一种常见的数据结构,它由一堆一维数组(也称为行向量)组成。矩阵是二维数组,由行和列构成。通常用于在数学、计算机科学、统计学等领域进行数据处理和表示。

矩阵可以由一堆行向量组成,这种表示方式称为行向量组成的矩阵;也可以由一堆列向量组成,称为列向量组成的矩阵。矩阵的行数表示矩阵的高度,列数表示矩阵的宽度。行向量组成的矩阵是以横向排列的行向量构成,而列向量组成的矩阵是以纵向排列的列向量构成。

例如,下面是一个由行向量组成的矩阵:

[1 2 3]
[4 5 6]
[7 8 9]

下面是一个由列向量组成的矩阵:

[1  4  7]
[2  5  8]
[3  6  9]

矩阵在线性代数、图像处理、神经网络等领域具有广泛的应用。在计算机中,矩阵也是很多数据处理算法的基础,例如矩阵乘法、矩阵转置等操作。

方阵,对称矩阵,单位矩阵,对角线

方阵

下面介绍几种特殊的矩阵,如果 m 等于 n,那就称为方阵
[ 1 0 0 0 2 0 0 0 3 ] \begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 3 \\ \end{bmatrix} 100020003

对称矩阵

对称矩阵转置后不会改变原始矩阵的形状和值。
定义是 a i j a_{ij} aij
等于 a j i a_{ji} aji那么就是对称矩阵(沿着主对角线(左上角到右下角划分的线)的元素对称, 这里的对称是主对角线两侧的元素相等),并且肯定是个方阵
[ 1 1 2 1 2 3 2 3 3 ] \begin{bmatrix} 1 & 1 & 2 \\ 1 & 2 & 3 \\ 2 & 3 & 3 \\ \end{bmatrix} 112123233

单位矩阵

主对角线都是 1,其它位置是 0,这称之为单位阵,单位矩阵写为 I,一定是方阵,等同于数字里面的 1
[ 1 ⋯ 0 0 0 ⋯ 1 ⋯ 0 0 0 ⋯ ⋯ ⋯ 0 0 0 ⋯ ⋯ ⋯ 0 0 0 ⋯ 1 ] \begin{bmatrix} 1 & \cdots & 0 & 0 & 0\\ \cdots & 1 & \cdots & 0 & 0\\ 0 & \cdots & \cdots & \cdots & 0\\ 0 & 0 & \cdots & \cdots & \cdots\\ 0 & 0 & 0 & \cdots & 1\\ \end{bmatrix} 100010000000001

单位矩阵对应的方法是numpy模块中的identity和eye方法, numpy.identity返回一个单位矩阵,即一个对角线上为1,其他位置为0的方阵。

identity方法

参数:

  • n:一个整数,表示输出的单位矩阵的行数和列数。
  • dtype:一个可选参数,用于指定输出数组的数据类型,默认为float类型。

返回值:

  • out:一个大小为n x n的NumPy数组,其主对角线为1,其余元素为0。

eye方法

numpy.eye方法用于创建一个单位矩阵,也称为单位矩阵或恒等矩阵。单位矩阵是一个方阵,它的主对角线上的元素都是1,其余元素都是0。

函数签名:

numpy.eye(N, M=None, k=0, dtype=float, order='C')

参数:

  • N:生成矩阵的行数(也是列数,因为是方阵)。
  • M:可选参数,生成矩阵的列数,默认为N,因为是方阵,一般不需要指定。
  • k:可选参数,对角线的偏移量,默认为0,表示主对角线上的元素为1,其他元素为0;若k为正整数,则主对角线在矩阵的上方,若为负整数,则主对角线在矩阵的下方,对角线元素为1。
  • dtype:可选参数,指定生成矩阵的数据类型,默认为float
  • order:可选参数,指定数组的内存布局,'C'表示C顺序,'F'表示Fortran顺序,默认为'C'

返回值:

  • 返回一个单位矩阵,其形状为(N, M)

示例:

import numpy as np

# 创建一个3x3的单位矩阵
eye_matrix = np.eye(3)
print(eye_matrix)
# 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

# 创建一个4x4的单位矩阵,主对角线偏移量为1
eye_matrix_shifted = np.eye(4, k=1)
print(eye_matrix_shifted)
# 输出:
# [[0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]
#  [0. 0. 0. 0.]]

numpy.eye函数非常有用,特别在线性代数和矩阵运算中经常用到。

identity和eye方法的区别

numpy.eye函数与numpy.identity函数都用于创建单位矩阵,但它们有一些区别:

  1. 参数不同:

    • numpy.eye(N, M=None, k=0, dtype=float)eye函数可以创建任意大小的单位矩阵,其中N表示行数,M表示列数,默认情况下M等于Nk表示对角线的偏移量,默认为0,即主对角线。
    • numpy.identity(n, dtype=None)identity函数创建的是一个方阵(行数等于列数),只需要一个整数n作为参数,表示输出单位矩阵的行数和列数。
  2. 默认值不同:

    • numpy.eye的默认数据类型为float,可以通过dtype参数指定其他数据类型。
    • numpy.identity的默认数据类型也是float,可以通过dtype参数指定其他数据类型。

示例:

import numpy as np

# 使用eye创建3x4的单位矩阵,对角线偏移量为1
eye_matrix = np.eye(3, 4, k=1, dtype=int)
print(eye_matrix)
# 输出:
# [[0 1 0 0]
#  [0 0 1 0]
#  [0 0 0 1]]

# 使用identity创建3x3的单位矩阵,默认数据类型为float
identity_matrix = np.identity(3, dtype=int)
print(identity_matrix)
# 输出:
# [[1 0 0]
#  [0 1 0]
#  [0 0 1]]

总的来说,eye函数比identity函数更灵活,可以创建非方阵的单位矩阵,并且可以指定对角线的偏移量,而identity函数则专门用于创建方阵的单位矩阵。

对角阵

对角阵,就是主对角线非 0,其它位置是 0
在这里插入图片描述

dot方法在矩阵中的应用

numpy.dot方法用于计算两个数组的矩阵乘法(点积)。在矩阵运算中,矩阵乘法是一种常见的操作,它涉及到两个矩阵的元素相乘和求和的过程。

函数签名:

numpy.dot(a, b, out=None)

参数:

  • a:要进行矩阵乘法的数组或矩阵。
  • b:要进行矩阵乘法的数组或矩阵。
  • out:可选参数,指定输出结果的数组。如果不指定,结果将会创建一个新的数组。

返回值:

  • 返回两个数组的矩阵乘法结果。

注意事项:

  1. 两个数组的维度必须满足矩阵乘法的条件,即第一个数组的列数要与第二个数组的行数相等。
  2. 如果两个数组是一维的,那么dot函数将计算它们的点积(内积)。
  3. 如果两个数组是二维的,那么dot函数将计算它们的矩阵乘法。

示例:

import numpy as np

# 一维数组的点积(内积)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
dot_product = np.dot(a, b)
print(dot_product)  # 输出:32

# 二维数组的矩阵乘法
matrix_a = np.array([[1, 2], [3, 4]])
matrix_b = np.array([[5, 6], [7, 8]])
matrix_product = np.dot(matrix_a, matrix_b)
print(matrix_product)
# 输出:
# [[19 22]
#  [43 50]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/811647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Golang 接口自动化02】使用标准库net/http发送Post请求

目录 写在前面 发送Post请求 示例代码 源码分析 Post请求参数解析 响应数据解析 验证 发送Json/XMl Json请求示例代码 xml请求示例代码 总结 资料获取方法 写在前面 上一篇我们介绍了使用 net/http 发送get请求,因为考虑到篇幅问题,把Post单…

华为OD机试真题 Java 实现【输出指定字母在字符串的中的索引】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述说明: 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题&#x…

四年前没做成的跑腿代驾平台,四年后再做也许就成了

​几年前新零售概念大火,不止是传统门店商家蠢蠢欲动,很多传统行业都在试图搭上互联网的快车,在传统实体中脱颖而出。当时炒的最热的除了社区团购、智慧门店就是同城跑腿、搬家、拉货、代驾代买这类服务型了。 社区团购几乎是各家杀的头破血流…

Zabbix分布式监控快速入门

目录 1 Zabbix简介1.1 软件架构1.2 版本选择1.3 功能特性 2 安装与部署2.1 时间同步需求2.2 下载仓库官方源2.3 Zabbix-Server服务端的安装2.3.1 安装MySQL2.3.1.1 创建Zabbix数据库2.3.1.2 导入Zabbix库的数据文件 2.3.2 配置zabbix_server.conf2.3.3 开启Zabbix-Server服务2.…

Day47 算法记录|动态规划14子序列

子序列 1143. 最长公共子序列1035.不相交的线53. 最大子数组和 1143. 最长公共子序列 这道题和718. 最长重复子数组的区别:这道题的子序列可以不连续 这个视频讲解的很好 class Solution {public int longestCommonSubsequence(String text1, String text2) {char…

打开域名跳转其他网站,官网被黑解决方案(Linux)

某天打开网站,发现进入首页,马上挑战到其他赌博网站。 事不宜迟,不能让客户发现,得马上解决 我的网站跳转到这个域名了 例如网站跳转到 k77.cc 就在你们部署的代码的当前文件夹下面,执行下如下命令 find -type …

SQL-每日一题【1075. 项目员工 I】

题目 项目表 Project: 员工表 Employee: 请写一个 SQL 语句,查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。 查询结果的格式如下: 解题思路 前置知识 AVG 函数 定义和用法: AVG 函数返回数…

基于ARM+FPGA (STM32+ Cyclone 4)的滚动轴承状态监测系统

状态监测系统能够在故障早期及时发现机械设备的异常状态,避免故障的 进一步恶化造成不必要的损失,滚动轴承是机械设备的易损部件,本文对以滚动 轴承为研究对象的状态监测系统展开研究。现有的监测技术多采用定时上传监 测数据,…

【Spring AOP + 自定义注解 + 数据源 实现主从库切换读写分离】—— 案例实战

💧 S p r i n g A O P 主从数据源切换 读写分离 自定义注解案例实战! \color{#FF1493}{Spring AOP 主从数据源切换 读写分离 自定义注解 案例实战!} SpringAOP主从数据源切换读写分离自定义注解案例实战!💧 …

提升开发效率,Lombok的链式编程和构建模式

目录 链式编程 定义 代码示例 ​编辑 Accessors(chaintrue) 开启链式编程 ​编辑 Accessors(chain true,fluent true) 去除set和get 构建模式 定义 代码示例 ​编辑 踩坑 Singular 定义 代码示例 踩坑默认值情况 ​编辑 With 定义 代码示例 链式编程 定义 链…

SQL-每日一题【1070. 产品销售分析 III】

题目 销售表 Sales: 产品表 Product: 编写一个 SQL 查询,选出每个销售产品 第一年 销售的 产品 id、年份、数量 和 价格。 结果表中的条目可以按 任意顺序 排列。 查询结果格式如下例所示: 示例 1: 解题思路 前置知…

永恒之蓝复现(ms17-010)

目录标题 一、漏洞原理二、影响版本三、永恒之蓝复现复现环境复现过程1.主机发现 2.使用MSF的永恒之蓝漏洞模块3.使用ms17-010扫描模块,对win7进行扫描4.使用ms17-010攻击模块,对win7进行攻击5.得到win7权限6.通过shell对win7进行控制 一、漏洞原理 永恒…

第101章#远程调试西门子PLC(明牛智能网关)入门

一、下载明牛网站上的MNConfig(用于配置MNGate系列产品)。 二、注册账号。 三、用注册的账号登录MNConfig 四、在左侧BOX列表中,点击BOX列表—右键—添加BOX 五、选择联网方式,一般都是用的4G。 可以用自己的手机卡进行测试。 1、插入4G卡&am…

【Docker 那些事儿】如何安全地进入到容器内部

文章目录 🌟 前言1. 容器运行🍇 自动重启的容器🍇 自定义名称的容器🍇 开启端口的容器🍇 与宿主机共享目录的容器 2. 进入容器2.1 容器的三种状态🍑 运行状态🍑 暂停状态🍑 终止状态…

操作系统4

文件管理 文件的逻辑结构 文件的目录 文件的物理结构 文件存储空间管理 文件的基本操作

stm32内存杂记

从上图中可以看出SRAM空间用来存放:1.各个文件中声明和定义的全局变量、静态数据和常量;2.未初始化的全局变量;3.HEAP区;4.STACK区 这是在.map文件中,双击工程target打开 堆栈是处于以0x2000xx地址处的 EQU伪代码&…

跟着《代码随想录》刷题(七)——回溯算法

7.1 组合问题 77、组合 LeetCode&#xff1a;77、组合 &#xff08;1&#xff09;未剪枝优化 class Solution { private:vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, i…

SMB协议简单免费搭建个人winNAS

SMB协议&#xff0c;让PC变身小型winNAS&#xff0c;简单免费搭建个人winNAS 打开SMB服务设置共享文件夹远程连接 SMB 的优点之一是兼容性好&#xff0c;在各平台获得了广泛支持&#xff0c;包括 Windows、Linux、macOS 等各系统挂载访问都很方便。另外 SMB 也是各种电视、电视…

Arcgis通过模型构建器计算几何坐标

模型 模型中&#xff0c;先添加字段&#xff0c;再计算字段 计算字段 模型的计算字段中&#xff0c;表达式是类似这样写的&#xff0c;其中Xmin表示X坐标&#xff0c;Ymin表示Y坐标 !Shape.extent.Xmin!

免费商用 Meta 发布开源大语言模型 Llama 2

Meta 和微软深度合作&#xff0c;正式推出下一代开源大语言模型 Llama 2&#xff0c;并宣布免费提供给研究和商业使用。 Llama 2 论文地址&#xff1a;Llama 2: Open Foundation and Fine-Tuned Chat Models 据介绍&#xff0c;相比于 Llama 1&#xff0c;Llama 2 的训练数据多…