Numpy的轴及numpy数组转置换轴

news2025/1/11 2:27:47

Numpy的轴

在这里插入图片描述

import numpy as np
数组=np.array([[[1,2],[4,5],[7,8]],[[8,9],[11,12],[14,15]],[[10,11],[13,14],[16,17]],[[19,20],[22,23],[25,26]]])
print(数组.shape)  # 返回 (4, 3, 2)

最内层一对 [ ] 可以代表一个1维数组
加粗的一对 [ ] 里面有3个一维数组,也就是2维数组
最外层的一对 [ ] 里面有3个2维数组也就是3维数组
0轴是行,1轴是列,2轴是纵深
数组的shape维度是(4,3,2),元组的索引为 [ 0,1,2 ]
假设维度是(2,3),元组的索引为[0,1]
假设维度是(4,) 元组的索引为[0]
可以看到轴编号和shape元组的索引是对等的,所以这个编号可以理解为高维nd.array.shape产生的元组的索引
我们知道shape(4,3,2)表示数组的维度,既然shape的索引可以看做轴编号,那么一条轴其实就是一个维度
0轴对应的是最高维度3维,1轴对应2维,2轴对应的就是最低维度的1维

总结:凡是提到轴,先看数组的维度,有几维就有几个轴

沿轴切片

import numpy as np
数组=np.array([  [1,2,3] , [4,5,6] , [7,8,9]  ])
print(数组)
print(数组.shape)

数组的维度是(3,3),这个元组的索引是 [0,1],表示这个2维数组有两条轴:0轴和1轴

首先看1个参数的切片操作:
print(数组[0:2])

这里有个很重要的概念, :2 是切片的第一个参数,约定俗成第一个参数就代表0轴
0轴表示2维,所以这个切片是在2维这个维度上切的,又叫“沿0轴切”。

在这里插入图片描述

这个2维数据是由3个1维数组组成的,这3个1维数组当然也有索引号也是[0,1,2],[ :2 ] 就表示它要切取2维(0轴)上3个1维数组中的索引 [ 0 ] 和索引 [ 1 ] ,于是得到 ([ 1, 2, 3 ]) 和 ([ 4, 5, 6 ]) 这两个1维数组。

首先看2个参数的切片操作:
print(数组[:2,1:])

就是在两个维度(轴)上各切一刀,第1个参数就是2维(0轴), :2 表示切取2维(0轴)上的索引 [ 0 ] 和索引 [ 1 ] ,即 ([ 1, 2, 3 ]) 和 ([ 4, 5, 6 ]) 这两个1维数组
第2个参数就是1维(1轴),1: 表示切取1维(1轴)上的索引 [ 1 ] 和索引 [ 2 ] ,即对数组 ([ 1, 2, 3 ]) 取 ([ 2,3 ]) ,对数组 ([ 4, 5, 6 ]) 取 ([ 5,6 ])
在这里插入图片描述

传入轴编号怎么理解

import numpy as np
数组=np.arange(16).reshape((2, 2, 4))
print(数组)
print(数组.shape)

数组的维度:(2,2,4) 元组索引(下标):[0,1,2]

我们转换它:
3维数组的1维(2轴)上是4个一维数组,每个1维数组都有一个由0,1两个轴编号组成的索引 [ 0,0 ] , [ 0,1 ] , [ 1,0 ] , [ 1,1 ],transpose方法传入的参数是轴编号 (1, 0, 2) 在就是把元组的索引顺序改变成 [ 1,0,2 ] 也就是把数组 [ 0,1 ] 的一维数组变成数组[ 1,0 ]
在这里插入图片描述

numpy数组转置换轴

在这里插入图片描述

在这里插入图片描述

transpose方法 【行列转置】

import numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.transpose())

在这里插入图片描述

swapaxes方法 【轴转置】

mport numpy as np
数组=np.arange(24).reshape((4,6))
print(数组)
print("-"*30)
print(数组.swapaxes(1,0))

在这里插入图片描述

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

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

相关文章

Layout布局(element ui)

Layout布局嘚吧嘚gutter示例发现el-row行内容居中默认局左上角水平居中垂直居中水平垂直居中嘚吧嘚 其实layout布局的使用在element官网上都有相关描述,也有相关示例,很容易快速上手。但是在实际使用的过程还是发现一些问题,于是做了一些学习…

递归(基础)

目录 一、递归的定义 1、什么时候会用到递归的方法 1. 定义是递归的 2. 数据结构是递归的 3. 问题的解法是递归的 2、应用递归的原则 3、递归调用顺序问题 1. 首先递归的过程可以总结为以下几点: 2. 递归工作栈​​​​​​​ 二、 递归和非递归的转化 …

Allegro如何快速把Class高亮成不同的颜色操作指导

Allegro如何快速把Class高亮成不同的颜色操作指导 在做PCB设计的时候,高亮Class组是一个非常频繁的操作,Allegro支持快速的将Class高亮成不同的颜色,并且还可以形成一个列表,如下图 具体操作如下 选择File选择Change Editor

select ( ) for update 锁行还是锁表?

select ( ) for update 锁行还是锁表? 一、验证 创建SQL表 //id为主键 //name 为唯一索引 CREATE TABLE user (id INT ( 11 ) NOT NULL AUTO_INCREMENT,name VARCHAR ( 255 ) DEFAULT NULL,age INT ( 11 ) DEFAULT NULL,code VARCHAR ( …

SpringCloud微服务项目实战 - 6.延迟任务

我没有失约,我与春风共至,我与夏蝉共鸣,我与秋叶共舞,我与凛冬共至,唯独你背道而行! 系列文章目录 项目搭建App登录及网关App文章自媒体平台(博主后台)内容审核(自动)延迟任务 - 精…

JVM快速入门学习笔记(一)

参考: https://blog.csdn.net/m0_38075425/article/details/81627349 www.kuangstudy.com JVM 常问面试题 请你谈谈你对JVM的理解? java—>class---->Java8虚拟机和之前的变化更新?什么是OOM 内存溢出什么是栈溢出StackOverFlowErr…

Matplotlab绘制散点图小节

前言现有一堆数据,是散点坐标形式,现在需要将它们绘制成散点图,并解决了关于Matplotlib绘图不能显示汉字的问题。读取数据数据格式如下图。第一行为一个数字,表示当前文件共有多少行数据。 第二行开始为真正的数据,各数…

如何冻结Excel中的行

在Excel中有一个冻结行的功能。在冻结行的帮助下,我们可以固定我们选择的窗格或行,以超出特定的限制工作表。 可以从“视图”菜单选项卡的“窗口”部分的“冻结窗格”下拉列表中访问“冻结行”。首先,要冻结列,请选择要冻结的列或将光标放在该列的任何位置,然后从列表中选…

vue 使用hook 对 chekbox 做简单的逻辑抽离,一个核心多套模板

现在的组件库都会包含些相同的基础组件,功能大差不差,只是不同UI规范下的具体实现。这些基础组件基本能满足大部分的开发需求。 但世上无银弹,有时我们需要对组件做细微的调整可能是功能上的,可能是UI上的,例如 tab切换…

JavaWeb基础(三) Request和Response详解

JavaWeb基础(三) Request和Response详解 1,Request和Response的概述 Request是请求对象,Response是响应对象。 此时,我们就需要思考一个问题request和response这两个参数的作用是什么? request: 获取请求数据 浏览器会发送HTTP请求到后台…

跨站脚本攻击漏洞(XSS)-基础篇

数据来源 跨站脚本攻击 1、什么是跨站脚本攻击? 跨站脚本( Cross-site Scripting)攻击,攻击者通过网站注入点注入客户端可执行解析的 payload(脚本代码),当用户访问网页时,恶意 payload自动加载并执行,…

索引(index)

索引(index) 1、什么是索引: 索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,当然多个字段联合起来也可以添加索引,索引相当于一本书的目录&#xf…

Spring Boot 3 步完成日志脱敏,简单实用!

在我们写代码的时候,会书写许多日志代码,但是有些敏感数据是需要进行安全脱敏处理的。 对于日志脱敏的方式有很多,常见的有: 使用conversionRule标签,继承MessageConverter 书写一个脱敏工具类,在打印日志…

springboot+mybatisplus实现分页

在日常开发中,多记录的列表查询可能会遇到分页处理的场景,在springboot项目中传统是引入mybatis组件进行持久化,然后通过pagehelper组件进行分页实现。下面体验一下在springboot项目中引入mybatisplus组件,通过其自带分页插件实现…

cpu简述--指令集架构

很多初级开发者其实都对cpu了解不多,个人兴趣原因想要了解一下cpu的相关知识,所以开几篇文章记录一下吧。 2002年8月10日,中国科学院计算技术研究所的青年科学家胡伟武带领研制组,研制出我国首枚拥有自主知识产权的通用高性能微处理芯片——“龙芯一…

MindOpt安装配置教程(Windows系统)

1 前言 官网有很多的说明文档、教程,但是可能有些地方(这里仅仅补充安装配置部分,其他操作建议自行去官网进行探索)不是很详细,踩了一些坑,所以进行了一些总结。 2 下载安装 url:求解器SDK下载…

Nginx基础02:配置文件nginx.conf(Part1)

我们使用Nginx主要是通过其配置文件nginx.conf来实现的。按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf!如何使用本篇文章本文作为一篇高度…

【博客590】iptables raw表的特殊作用

iptables raw表的特殊作用 1、iptables四表五链: 2、raw表的优先级 从上图中可以看到raw表作用于prerouting和output链,且在这两个链中的几个表中拥有最高优先级,并且是高于连接跟踪的,这个也是raw表用于优化性能的一个重要前提 …

Leetcode链表专题专练-万字总结

文章目录 系列:链表专练 语言:java & go 题目来源:Leetcode 常考点: 单链表 & 双链表 &双指针 思路和参考答案文章目录链表专题总结链表专练链表专题总结 链表是一种通过指针串联在一起的线性结构,每一个…

【计算机网络】传输层协议-------TCP详解

文章目录1. TCP 协议概述2. TCP原理2.1 保持可靠性的机制2.1.1 确认应答2.1.2 超时重传2.1.3 连接管理机制(安全机制)2.1.3.1 三次握手2.1.3.2 四次挥手2.1.4 滑动窗口2.1.5 流量控制2.1.6 拥塞控制2.1.7延时应答2.1.8 捎带应答2.1.9 粘包问题2.1.10 TCP异常2.1.11 TCP vs UDP1…