11-矩阵的运算_加减法_数乘_转置

矩阵的运算 加法,数乘,减法,转置

矩阵的加减

矩阵的加法就是矩阵的对应位置相加,减法也是一样就是对应位置相减
在这里插入图片描述

数乘

在这里插入图片描述

转置

转置的操作和向量是一样的,就是把 aij 变成 aji,把行和列互换一下

对于矩阵而言, 转置其实就相当于把主对角线两侧的元素进行了调换
在这里插入图片描述

高维数组的转置方法tranpose

numpy.transpose方法用于交换数组的维度,也就是将数组的行和列进行互换。对于二维数组来说,它实际上就是进行转置操作。

函数签名:

numpy.transpose(a, axes=None)
numpy.ndarray.transpose(axes=None)

参数:

  • numpy.ndarray:要进行转置操作的数组。
  • axes:可选参数,用于指定交换维度的顺序(索引的形式)。默认情况下,会交换所有维度。可以传入一个整数元组来指定交换的维度顺序。
    在这里插入图片描述

返回值:

  • 返回转置后的数组。

注意事项:

  1. 如果数组是一维的,transpose方法不会对其进行转置,直接返回原数组。
  2. 如果数组是多维的,transpose方法可以根据axes参数指定的顺序对维度进行调整。

示例:

import numpy as np# 二维数组的转置(转置相当于行列互换)
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 法一:transposed_arr = np.transpose(arr)
# 转置数组(行列互换) 
transposed_arr = arr.transpose()
print(transposed_arr)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]# 也可以使用T属性来进行转置
transposed_arr2 = arr.T
print(transposed_arr2)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

在线性代数和数组操作中,经常需要对数组的维度进行变换,numpy.transpose方法是一个非常有用的工具。它可以用于处理各种维度不一致的数组,以及进行矩阵转置等操作。

🎯实战:

# coding: utf-8import numpy as np# 矩阵的加减
n1 = np.arange(6).reshape(2, 3)
print('矩阵的加减演示:', n1 + n1, '\n', n1 - n1)
print('=' * 20)# 矩阵的数乘
print(n1 * 5)
print('=' * 20)# 矩阵的转置
print(n1.T)  # 转置
print('=' * 20)
v = np.array([1, 2, 3])
print(v.T)  # 一位数组转置后仍然显示为行向量, 但它其实已经转置了
print('=' * 20)# 我们可以通过改变形状把它变为一个列向量  注:转置后将会变为n行一列的二维数组
print(v.reshape(-1, 1))  # -1代表会根据数组的总元素个数和其他维度的大小自动计算该维度的大小
print('=' * 20)print(n1)
print(n1.reshape(3, 2))  # 千万要注意, 对于更高维度的数组来说不能通过reshape改变形状来达到转置的目的, 此方法仅限于一维数组(向量)
print('=' * 20)n1 = np.arange(6).reshape(2, 3)
# 查看当前数组的形状
print('数组的形状:', n1.shape)
n2 = n1.transpose(1, 0)  # 1, 0指的是维度的索引顺序, 前一行的结果为'数组的形状: (2, 3)', 此时维度一索引为0,维度二索引为1
print(n2)
# 我们再来打印下转置后的维度
print(n2.shape)  # result:(3, 2), 可以看到维度由2行3列变成了3行2列
print('=' * 20)temp1 = np.arange(24).reshape((2, 3, 4))  # 创建一个三维数组, 可以理解为两个三行四列的元素组成的
print(temp1)
# 进行三维数组的转置
temp2 = temp1.transpose(1, 0, 2)  # 此时的维度对应的是(3, 2, 4)
print('转置后的数组\n', temp2)
print('采用reshape直接改变形状的数组\n', temp1.reshape((3, 2, 4)))
"""
result:
可以看到高维数组已经不能简单的以改变数组的维度来去转置, 改变维度转置只限于一维数组
转置后的数组[[[ 0  1  2  3][12 13 14 15]][[ 4  5  6  7][16 17 18 19]][[ 8  9 10 11][20 21 22 23]]]
采用reshape直接改变形状的数组[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]]]"""

result:

矩阵的加减演示: [[ 0  2  4][ 6  8 10]] [[0 0 0][0 0 0]]
====================
[[ 0  5 10][15 20 25]]
====================
[[0 3][1 4][2 5]]
====================
[1 2 3]
====================
[[1][2][3]]
====================
[[0 1 2][3 4 5]]
[[0 1][2 3][4 5]]
====================
数组的形状: (2, 3)
[[0 3][1 4][2 5]]
(3, 2)
====================
[[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]]
转置后的数组[[[ 0  1  2  3][12 13 14 15]][[ 4  5  6  7][16 17 18 19]][[ 8  9 10 11][20 21 22 23]]]
采用reshape直接改变形状的数组[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]]]进程已结束,退出代码0

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

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

相关文章

【Android常见问题(五)】- Flutter项目性能优化

文章目录 知识回顾前言源码分析1. 渲染过程2. 分析工具3. 优化方法合理使用const关键词合理使用组件管理着色器编译垃圾 知识回顾 前言 项目迭代开发一定程度后,性能优化是重中之重,其中包括了包体积,UI 渲染、交互等多个方面。 通过 Flutt…

Zotero ubuntu2023安装 关联 ubuntu文献翻译

一、准备下载的软件: Zotero | Downloads 1. Zotero-6.0.26_linux-x86_64.tar.bz2 下面是插件 zotfile-5.1.2-fx.xpi zotero-pdf-translate.xpi jasminum-v0.2.6.xpi 2.2.5 Tampermonkey 4.11.crx 所准备的文件,都已经在这个链接的压缩包下面 …

动态内存管理学习分享

动态内存管理学习分享 1. 为什么存在动态内存分配2. 动态内存函数的介绍2.1 [malloc](https://legacy.cplusplus.com/reference/cstdlib/malloc/?kwmalloc)和[free](https://legacy.cplusplus.com/reference/cstdlib/free/?kwfree)2.1.1 实例 2.2 [calloc](https://legacy.cp…

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中,修改setting 下的 useCompilerPlugins 字段为 ["sass"], 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件:typescript、less、sass 修改之后可以将原.w…

持续贡献开源力量,棱镜七彩加入openKylin

近日,棱镜七彩签署 openKylin 社区 CLA(Contributor License Agreement 贡献者许可协议),正式加入openKylin 开源社区。 棱镜七彩成立于2016年,是一家专注于开源安全、软件供应链安全的创新型科技企业。自成立以来&…

【消息中间件】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

文章目录 视频演示效果前言一、分析二、全局注入MQTT连接1.引入库2.写入全局连接代码 二、PHP环境建立总结 视频演示效果 【uniapp】实现买定离手小游戏 前言 Mqtt不同环境问题太多,新手可以看下 《【MQTT】Esp32数据上传采集:最新mqtt插件(支…

使用3ds Max粒子系统创建飞天箭雨特效场景

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 设置箭头 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我使用多边形建模技术制作了一个简单的箭头,我将 在教程中使用。.max您可以从 下载部分。 箭头.max 步骤 3 将此箭头重命名为静态…

【计算复杂性理论】证明复杂性(八):命题鸽巢原理(Propositional Pigeonhole Principle)的指数级归结下界

往期文章: 【计算复杂性理论】证明复杂性(Proof Complexity)(一):简介 【计算复杂性理论】证明复杂性(二):归结(Resolution)与扩展归结&#xff…

CentOS 7.6使用yum安装stress,源码安装stree-ng 0.15.06,源码安装sysstat 12.7.2

cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core),uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64 yum install stress sysstat -y安装stress和sysstat。 使用pidstat -u 5 1没有%wait项: 原因是CentOS 7仓…

13.7 CentOS 7 环境下大量创建帐号的方法

13.7.1 一些帐号相关的检查工具 pwck pwck 这个指令在检查 /etc/passwd 这个帐号配置文件内的信息,与实际的主文件夹是否存在等信息, 还可以比对 /etc/passwd /etc/shadow 的信息是否一致,另外,如果 /etc/passwd 内的数据字段错…

用C语言构建一个手写数字识别神经网络

(原理和程序基本框架请参见前一篇 "用C语言构建了一个简单的神经网路") 1.准备训练和测试数据集 从http://yann.lecun.com/exdb/mnist/下载手写数字训练数据集, 包括图像数据train-images-idx3-ubyte.gz 和标签数据 train-labels-idx1-ubyte.…

芯片制造详解.光刻技术与基本流程.学习笔记(四)

本篇文章是看了以下视频后的笔记提炼,欢迎各位观看原视频,这里附上地址 芯片制造详解04:光刻技术与基本流程|国产之路不容易 芯片制造详解.光刻技术与基本流程.学习笔记 四 一、引子二、光刻(1).光掩膜(2).光刻机(3).光刻胶(4).挖…

宝塔设置云服务器mysql端口转发,实现本地电脑访问云mysql

环境:centos系统使用宝塔面板 实现功能:宝塔设置云服务器mysql端口转发,实现本地电脑访问mysql 1.安装mysql、PHP-7.4.33、phpMyAdmin 5.0 软件商店》搜索 mysql安装即可 软件商店》搜索 PHP安装7.4.33即可(只需要勾选快速安装&…

按键消抖(有/无状态机)

一,理论概念 按键抖动 按键抖动:按键抖动通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭…

数据结构: 线性表(顺序表实现)

文章目录 1. 线性表的定义2. 线性表的顺序表示:顺序表2.1 概念及结构2.2 接口实现2.2.1 顺序表初始化 (SeqListInit)2.2.2 顺序表尾插 (SeqListPushBack)2.2.3 顺序表打印 (SeqListPrint)2.2.6 顺序表销毁 (SeqListDestroy)2.2.5 顺序表尾删 (SeqListPopBack)2.2.6 顺序表头插 …

安全学习DAY08_算法加密

算法加密 漏洞分析、漏洞勘测、漏洞探针、挖漏洞时要用到的技术知识 存储密码加密-应用对象传输加密编码-发送回显数据传输格式-统一格式代码特性混淆-开发语言 传输数据 – 加密型&编码型 安全测试时,通常会进行数据的修改增加提交测试 数据在传输的时候进行…

【Linux】关于Bad magic number in super-block 当尝试打开/dev/sda1 时找不到有效的文件系统超级块

每个区段与 superblock 的信息都可以使用 dumpe2fs 这个指令来查询的! 不过可惜的是,我们的 CentOS 7 现在是以 xfs 为默认文件系统, 所以目前你的系统应该无法使用 dumpe2fs 去查询任何文件系统的。 因为目前两个版本系统的根目录使用的文…

IT职场笔记

MySQL笔记之一致性视图与MVCC实现 一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。 一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什…

护网行动:ADSelfService Plus引领企业网络安全新纪元

随着信息技术的飞速发展,企业网络的重要性变得愈发显著。然而,随之而来的网络安全威胁也日益增多,网络黑客和恶意软件不断涌现,给企业的数据和机密信息带来巨大风险。在这个信息安全威胁层出不穷的时代,企业急需一款强…

Ubuntu的安装与部分配置

该教程使用的虚拟机是virtuabox,镜像源的版本是ubuntu20.04.5桌面版 可通过下面的链接在Ubuntu官网下载:Alternative downloads | Ubuntu 也可直接通过下面的链接进入百度网盘下载【有Ubuntu20.04.5与hadoop3.3.2以及jdk1.8.0_162,该篇需要使…