15-矩阵转置的拓展延伸

🔮矩阵的转置✨

前言

在很多时候我们拿到的数据本身可能并不会把点的坐标按列的方向排列起来,对于我们人类来说,更方便的方式依然是把这个点的坐标按行的方向排列,我们比较熟悉把矩阵看作为一个数据,在这里,P矩阵其实我们就把它看作是一个数据矩阵。

T = ( 1.5 0 0 2 ) T=\begin{pmatrix} 1.5 &0 \\ 0&2\end{pmatrix} T=(1.5002)

P = ( 0 0 4 0 5 3 ) P=\begin{pmatrix} 0 &0 \\ 4 &0 \\ 5 &3\end{pmatrix} P= 045003

在这种情况下,我们依然习惯于把每一行在数据科学中叫做样本。换句话说, 每一行是一个点,而每一列在数据科学中管它叫做特征或者属性,那么对于点坐标的数据来说,每一列就代表某一个维度的值,这个第一列就是x轴或者叫x方向上的值,而第二个维度是y轴或者y方向的值,但是大家一定要知道这个矩阵T是无法和这个矩阵P相乘的,因为一个2x2的矩阵是无法和一个3×2的矩阵相乘的,但是我们拿到的数据如果是这样的一个矩阵怎么办?答案非常简单,我们需要对矩阵P进行转置操作, 所谓的转置就是让行成为列, 让列成为行

P T = ( 0 4 5 0 0 3 ) P^T=\begin{pmatrix} 0 & 4&5 \\ 0& 0&3\end{pmatrix} PT=(004053)

在这里 P T P^T PT就称为 P的转置矩阵

如果从矩阵中的元素角度来看的话, 那么 A = ( a i j ) A=(a_{ij}) A=(aij) A T = ( a j i ) A^T=(a_{ji}) AT=(aji)
我们说起一个。向量如果不进行特殊声明的话,都是指一个列向量

🧩矩阵转置的性质💫

  • ( A T ) T = A (A^T)^T=A (AT)T=A
  • ( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT
  • ( k ⋅ A ) T = k ⋅ A T (k·A)^T=k·A^T (kA)T=kAT
  • 接下来要注意矩阵乘法的转置就有些不同了 ( A B ) T = B T ⋅ A T (AB)^T=B^T·A^T (AB)T=BTAT, 我们可以这样去看待和理解
    在这里插入图片描述

在上篇文章中我们已经给出了线性代数中向量和矩阵的项目结构和程序代码, 在这里我们紧接着上篇文章中的项目代码在Matrix类中添加矩阵的转置方法。项目代码在这篇文章末尾➡️14-矩阵相乘及其运算法则

🎯实战1–矩阵类的转置方法及其Numpy中的矩阵对象🙌

├───Linear_Algebra
│   │   main_matrix.py
|   |   main_numpy_Matrix.py
│   │   
│   │           
│   ├───playLA
│   │   │   Matrix.py
│   │   │   Vector.py
│   │   │   _globals.py
│   │   │   __init__.py
|   |   |   

接下来我们往Matrix.py程序中的Matrix类中添加转置方法

def T(self):"""返回矩阵的转置矩阵"""return Matrix([[e for e in self.col_vector(i)] for i in range(self.col_num())])

紧接着我们在main_matrix.py中进行测试

# coding:utf-8from playLA.Matrix import Matrix
from playLA.Vector import Vectorif __name__ == '__main__':matrix = Matrix([[1, 2], [3, 4]])print(matrix)print('matrix.shape=', matrix.shape())print("matrix.size=", matrix.size())print("len(matrix)=", len(matrix))print("matrix[0][0]=", matrix[0, 0])matrix2 = Matrix([[5, 6], [7, 8]])print(matrix + matrix2)print(matrix - matrix2)print(matrix * 2)print(2 * matrix)print(Matrix.zero(2, 3))T = Matrix([[1.5, 0], [0, 2]])p = Vector([5, 3])print(T.dot(p))P = Matrix([[0, 4, 5], [0, 0, 3]])print(T.dot(P))print(matrix.dot(matrix2), matrix2.dot(matrix))  # 验证矩阵相乘是否遵循交换律print(P.T()) # 测试程序转置功能是否实现

然后我们再来看一下Numpy中的矩阵对象及其相关的运算
main_numpy_Matrix.py

# coding:utf-8import numpy as npif __name__ == '__main__':"""Numpy中的矩阵和向量是封装在一个类中"""# 矩阵的创建A = np.array([[1, 2], [3, 4]])print(A)# 矩阵的属性print(A.shape)print(A.T)  # 矩阵的转置# 获取矩阵的元素print(A[1, 1])print(A[0])  # 在计算机中矩阵默认是采用行的形式来存储的print(A[:,0])  # 获取矩阵A第一列的向量print(A[1, :])  # 获取矩阵第二行元素# 矩阵的基本运算B  = np.array([[5, 6, ], [7, 8, ]])print(A + B)print(A - B)print(A * 10)print(10 * A)print(A * B)  # 注意它不是矩阵相乘, 它是矩阵的对应元素相乘print(A.dot(B))  # 矩阵相乘# 矩阵和向量的运算p = np.array([10, 100])print(A + p)  # 矩阵和向量相加其实是矩阵的每一行都分别去和向量进行相加print(A + 1)  # 这其实是高维数组的一种广播机制print(A.dot(p))

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)

文章目录 1. 主要的窗体类及其用途2. 窗体类重要特性的设置2.1 setAttribute()函数2.2 setWindowFlags()函数2.3 setWindowState()函数2.4 setWindowModality()函数2.5 setWindowOpacity()函数 3. 多窗口应用程序设计3.1 主窗口设计3.2 QFormDoc类的设计3.3 QFormDoc类的使用3.…

某科技公司提前批测试岗

文章目录 题目 今天给大家带来一家提前批测试岗的真题,目前已经发offer 题目 1.自我介绍 2.登录页面测试用例设计 3.如何模拟多用户登录 可以使用Jmeter,loadRunner性能测试工具来模拟大量用户登录操作去观察一些参数变化 4.有使用过Jmeter,loadRunner做过性能压…

数据库运维是什么意思?主要工作包含哪些?

还有不少小伙伴不知道数据库运维是什么意思?主要工作内容包含哪些?今天我们就一起来简单了解一下吧,仅供参考哦! 数据库运维是什么意思? 数据库运维是指对数据库系统进行管理、监控和维护的过程,以确保数据…

ABPVNEXT-微服务框架基础入门

准备工作: 1.登录ABPvNext官网 网址 http://abp.io 2.跳转到商业版的说明文档,目前商业版没有中文,只能使用谷歌浏览器的内置翻译功能了 3.框架的相关环境要求,请自自行查看 适用于 Windows 的Visual Studio 2022 (v17.3) /…

适配器模式

泰国旅游使用插座问题 泰国插座用的是两孔的(欧标),可以买个 多功能转换插头(适配器),这样就可以使用了 适配器模式基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端…

【M波段2D双树(希尔伯特)小波多分量图像去噪】基于定向M波段双树(希尔伯特)小波对多分量/彩色图像进行降噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

修改el-select样式;修改element-plus的下拉框el-select样式

修改el-select样式 .select_box{// 默认placeholder:deep .el-input__inner::placeholder {font-size: 14px;font-weight: 500;color: #3E534F;}// 默认框状态样式更改:deep .el-input__wrapper {height: 42px;background-color: rgba(0,0,0,0)!important;box-shadow: 0 0 0 …

PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换

1.接口文档 2.laravel实现代码 /*** 进制转换计算器* return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten $this->request(ten);$two $this->request(two);$four $this->request(four);$eight $this->request(eight);$sixteen …

状态模式(C++)

定义 允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。 应用场景 在软件构建过程中,某些对象的状态如果改变,其行为也会随之,而发生变化,比如文档处于只读状态,其支持的行为和读写…

希尔排序——C语言andPython

前言 步骤 代码 C语言 Python 总结 前言 希尔排序(Shell Sort)是一种改进的插入排序算法,它通过将数组分成多个子序列进行排序,逐步减小子序列的长度,最终完成整个数组的排序。希尔排序的核心思想是通过排序较远距…

海外应用商店优化实用指南之元数据的迭代更新

随着每天都有新应用程序加入App Store和Google Play商店,许多应用程序都会针对与我们相同的关键词,虽然我们的元数据保持不变,但竞争对手的应用会重新编入索引,最终导致我们的关键词排名随着时间的推移稳步下降。 1、迭代的重要性…

Java课题笔记~ Spring 的事务管理

一、Spring 的事务管理 事务原本是数据库中的概念,在 Dao 层。但一般情况下,需要将事务提升到业务层,即 Service 层。这样做是为了能够使用事务的特性来管理具体的业务。 在 Spring 中通常可以通过以下两种方式来实现对事务的管理&#xff…

AI量化模型预测挑战赛 第二次学习笔记

有关竞赛信息以及基础baseline代码解读请看我的上一篇文章 AI量化模型预测——baseline学习笔记_寂ღ᭄秋࿐的博客-CSDN博客 在经过baseline进行详细的分析之后,接下来的方向肯定是奔着提分去的,下面我就从五个方面进行一一列出提分思路 提取更多的特征…

Python-OpenCV中的图像处理-物体跟踪

Python-OpenCV中的图像处理-物体跟踪 物体跟踪 物体跟踪 现在我们知道怎样将一幅图像从 BGR 转换到 HSV 了,我们可以利用这一点来提取带有某个特定颜色的物体。在 HSV 颜色空间中要比在 BGR 空间中更容易表示一个特定颜色。在我们的程序中,我们要提取的…

Chrome DevTools 与 WebSocket 数据查看失焦的问题

Chrome DevTools 在与 WebSocket 连接交互时可能会出现失焦的问题,这似乎是一个已知的 bug。当 DevTools 选中 WebSocket 消息时,如果有新的消息到达,DevTools 将会自动失焦,导致无法查看完整的消息内容。 虽然这个问题很令人困扰…

【Go语言】Golang保姆级入门教程 Go初学者chapter3

Go语言 第三章 运算符 下划线“_”本身在Go中一个特殊的标识符,成为空标识符。可以代表任何其他的标识符,但是他对应的值就会被忽略 仅仅被作为站维度使用, 不能作为标识符使用 因为Go语言中没有private public 所以标记变量首字母大写代表其…

利用 3D 地理空间数据实现Cesium的沉浸式环境

推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 为了将大量异构 3D 地理空间数据处理和分散到各行各业的地理空间应用程序和运行时引擎,Cesium 创建了 3D Tiles,这是一种用于高效流式传输和渲染大量异构数据集的开放标准。3D Tile…

树莓派第一次开机

文章目录 基于树莓派的OpenEuler基础实验一一、树莓派介绍树莓派较普通电脑的优势1、廉价便携可折腾2、树莓派运行开源的Linux操作系统3、编程好平台4、开源大社区5、引脚可编程6、便携随身带7、灵活可扩展 二、openEuler embedded介绍三、树莓派开机指南1. 硬件准备2. 软件准备…

Vue3 —— ref 全家桶及源码学习

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 本章 ref 全家桶 主要包括以下几个api 和 对应源码的学习&#xff1a; refisRefshallowReftriggerRefcustomRef 一、api 各自的使用 1、ref 使用 v…