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

news2024/11/14 18:30:02

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

矩阵的加减

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

数乘

在这里插入图片描述

转置

转置的操作和向量是一样的,就是把 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-8

import 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.coloradmin.cn/o/818915.html

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

相关文章

【低代码开发】:探索应用开发的未来趋势

低代码开发:加速应用开发的未来趋势 引言什么是低代码以及功能特点?什么是低代码开发?低代码平台的特点和功能低代码平台的应用场景和优势低代码的优点低代码的缺点低代码平台项目开发流程选择和实施低代码平台 低代码未来的发展趋势低代码平…

vue - 【完整源码】实现评论区发表评论、回复评论、评论盖楼等功能,前端PC网站/移动端H5实现多用户评论与回复功能(详细示例源码,一键复制开箱即用)

效果图 在vue项目开发中,实现一个类似社交软件的评论区发表留言及回复等评论功能效果,可以无限回复盖楼。 一、功

视频传输网安全防护体系

在电脑、手机信息安全保护得到广泛关注和普及的今天,监控摄像头等设备的安全防护仍为大众所忽略,大量视频监控网络的前端设备和数据没有任何保护,完全暴露在互联网中。 前端IP接入设备与后端业务系统处于直连状态,一旦有攻击者或…

点播播放器如何自定义额外信息(统计信息传值)

Web播放器支持设置观众信息参数&#xff0c;设置后在播放器上报的观看日志中会附带观众信息&#xff0c;这样用户就可以通过管理后台的统计页面或服务端API来查看特定观众的视频观看情况了。 播放器设置观众信息参数的代码示例如下&#xff1a; <div id"player"…

【100天精通python】Day20:文件及目录操作_os模块和os.psth模块,文件权限修改

目录 专栏导读 1 文件的目录操作 os模块的一些操作目录函数​编辑 os.path 模块的操作目录函数 2 相对路径和绝对路径 3 路径拼接 4 判断目录是否存在 5 创建目录、删除目录、遍历目录 专栏导读 专栏订阅地址&#xff1a;https://blog.csdn.net/qq_35831906/category_12…

C++模拟操作系统睡眠机制

在系统中定义一个变量bHiberable&#xff0c;如果是3分钟内休眠&#xff0c;那么每隔3分钟检测一次这个变量&#xff0c;如果为真&#xff0c;则进入睡眠&#xff0c;如果是假&#xff0c;就把这个标志设置为真。继续等待和检测。 程序阻止操作系统休眠的办法&#xff1a;操作…

Git 一篇文章搞懂git (万字长文)

索引 一. Git初识1.提出问题2.什么是版本控制器3.git安装 二. git本地仓库基本操作1.Git本地仓库相关命令2.认识工作区&#xff0c;暂存区&#xff0c;版本库3.第一次Git追踪管理文件4.**有关于打印提交日志的命令**5.验证.git文件的指针指向6.Git管理的再理解——修改7.版本回…

shell 脚本 if 判断使用方法

例如 1&#xff1a; shell if判断条件使用-n参数的使用 if [ -n $1 ] 当str非空的时候&#xff0c;为true if [[ -n $1 ]];then app_version$1 fi $1 不管我们是否传入参数&#xff0c;都是输出app_version$1 这行&#xff0c;也就是结果一直为true 例如 2&#xff1a; net…

CASS7.0裁剪面域图形

1、打开CASS7.0&#xff0c;绘制一个线状闭合图形&#xff0c;如下&#xff1a; 2、然后填充该线状地物&#xff0c;并删除线状地物&#xff0c;仅留下填充好的面域图形。如下&#xff1a; 3、恢复面域图形的边界线&#xff08;选中面域后&#xff0c;鼠标左键双击&#xff0c;…

Pytorch基础

文章目录 一、Pytorch简介二、安装2.1 安装GPU环境2.2 安装Pytorch2.3 测试 三、Tensor3.1 Tensor创建3.1.1 torch.tensor() && torch.tensor([])3.1.2 torch.randn && torch.randperm3.1.3 torch.range(begin,end,step)3.1.4 指定numpy 3.2 Tensor运算3.2.1 A…

mysql 非definer用户如何查看存储过程定义

当我们创建存储过程时&#xff0c;如果没有显示指定definer&#xff0c;则会默认当前用户为该sp的definer&#xff0c;如果没有相关授权&#xff0c;则其他用户是看不了这个sp的。 比如用户zhenxi1拥有如下权限&#xff1a; 它拥有对dev_nacos库的查询权限&#xff0c;这个时候…

流程节点图形变化

一、背景 &#xff08;1&#xff09;流程节点为矩形&#xff0c;只有上下左右四个连接点。 &#xff08;2&#xff09;支持移动&#xff0c;放大缩小&#xff0c;连接线。 二、需求 &#xff08;1&#xff09;流程节点支持图形变化。 &#xff08;2&#xff09;支持节点边框…

第7期ThreadX视频教程:如何实现RTOS高效的任务管理,抢占式调度,时间片调度和零中断延迟(2023-07-31)

视频教程汇总帖&#xff1a;https://www.armbbs.cn/forum.php?modviewthread&tid110519 本期视频为大家分享高效的RTOS任务管理设计&#xff0c;通过这个点来引出抢占式调度&#xff0c;时间片调度&#xff0c;任务优先级设置和零中断延迟。 RTOS任务高效管理是我们使用R…

吃透《西瓜书》第四章 决策树定义与构造、ID3决策树、C4.5决策树、CART决策树

目录 一、基本概念 1.1 什么是信息熵&#xff1f; 1.2 决策树的定义与构造 二、决策树算法 2.1 ID3 决策树 2.2 C4.5 决策树 2.3 CART 决策树 一、基本概念 1.1 什么是信息熵&#xff1f; 信息熵: 熵是度量样本集合纯度最常用的一种指标&#xff0c;代表一个系统中蕴…

Python小红书旋转验证码识别

本周免费接了一个用户的需求&#xff0c;研究了一下小红书旋转验证码。刚开始小瞧了它&#xff0c;觉得它应该没有百度旋转验证码那么难&#xff0c;毕竟图像没有干扰&#xff0c;需要的训练样本就可以很少。然而事情并没有这么简单&#xff0c;所以记录一下。 首先看一下最终…

代码随想录算法训练营第二天| 977. 有序数组的平方y,螺旋矩阵 II,209. 长度最小的子数组

977. 有序数组的平方y 思路&#xff0c;原数组是有序的&#xff0c;但是因为负数平方后可能变无序了&#xff0c;因此利用双指针遍历原数组&#xff0c;比较 nums[left]*nums[left]和nums[right]*nums[right]谁更大&#xff0c;然后对新数组赋值 class Solution {public int…

uni-table行点击事件

uni-app 如何点击表格的行跳转到对应的页面 找到uni-ui的源码&#xff0c;在源码里面绑定事件 用$emit发射事件 在你使用了uni-table的组件中接受改事件 然后绑定调用成功

在中国区部署日志通2.0

前提条件 一个域名&#xff1a;使用此域名来访问日志通控制台提供aws iam 的ssl证书 &#xff0c;而且必须跟域名相关联具有四个子网&#xff08;两个公有子网和两个私有子网&#xff09;和NAT网关的VPC 步骤 1.创建ACM证书 1.1 请求公有证书 1.2 配置域名 1.3 新申请的证书记…

Python自动化测试之函数知识讲解

一、前言 本文章主要讲解Python中的函数定义调用、参数分类、函数使用、作用域以及内置函数等内容&#xff0c;是函数专题讲解&#xff0c;这些都是python自动化学习中的基础哟&#xff0c;只有学好了基础才会有利于后面自动化的学习哟。这里我不多说废话了&#xff0c;直接进入…