Python NumPy数组维度和坐标轴的含义(ndarray demension axis)

news2024/11/25 8:59:59

Numpy是Python中科学计算的基础包,而其核心对象就是ndarray(n维数组)。关于如何创建n维度数组可以参考下面的文章:
Python NumPy数组的创建方法

为了对ndarray进行数学处理,很多函数中都要指定一个叫做坐标轴的参数(axis),本文主要解释关于ndarray的维度和坐标轴的概念。

文章目录

  • 一、ndarray的维度
    • 1.1 一维数组
    • 1.2 二维数组
    • 1.3 三维数组
    • 1.4 n维度数组
  • 二、ndarray的坐标轴

一、ndarray的维度

ndarray的名称是n维数组(N-Dimensional Array的缩写),数组的维度可以通过shape属性来查看,返回元组中的数字个数就是数组的维度。

1.1 一维数组

首次使用numpy模块时需要导入:

import numpy as np
a1 = np.arange(1,10)
a1
a1.shape

在这里插入图片描述
a1.shape返回的是(9,),这个元组中只有1个数字9,代表其是一维数组,共9个元素。

一维数组可以理解为一条射线:
在这里插入图片描述
从一维数组中获取元素只需要1个坐标,例如获取3(元素编号从0开始):

a1[2]

在这里插入图片描述

1.2 二维数组

通过reshape函数可以改变数组的维度(形状),这里通过np.arange函数生成一维数组后再改变其形状(维度):

a2 = np.arange(1,7).reshape(2,3)
a2
a2.shape

在这里插入图片描述
a2.shape返回的是(2,3),这个元组中有2个数字,代表其是二维数组,每个维度上的元素个数分别是2和3,即2行3列。

二维数组可以理解为一个平面:
在这里插入图片描述
从二维数组中获取元素只需要2个坐标,例如获取5(每个维度元素编号从0开始):

a2[1,1]

在这里插入图片描述

1.3 三维数组

先创建一个一维数组,然后通过reshape函数改为3维:

a3 = np.arange(1,25).reshape(2,3,4)
a3
a3.shape

在这里插入图片描述

三维数组可以理解为空间,它就像二维数组堆叠起来,这个(2,3,4)可以理解为2个3x4的二维数组(平面)前后堆叠起来:
在这里插入图片描述
从三维数组中获取元素需要3个坐标,例如获取7(每个维度元素编号从0开始):

a3[0,1,2]

在这里插入图片描述

1.4 n维度数组

同理,四维数组可以将三维数组视为一个空间,然后将空间堆叠起来,就像二维数组(平面)堆叠得到三维数组(空间)一样。依次类推,一直得到n维数组。

二、ndarray的坐标轴

理解了维度的概念后,每个维度对应的顺序就是坐标轴axis,其编号同样从0开始(就是上面一节示例图中的axis=0和axis=1等)。

这个参数的主要作用就是在进行数学运算时指定计算的方向,例如在二维数组上运行求和函数sum():
在这里插入图片描述
分别指定axis=0和axis=1进行计算,观察结果:

a2.sum(axis=0)
a2.sum(axis=1)

在这里插入图片描述

  • axis=0就是指代沿列的方向进行计算,结果就是[(1+4), (2+5), (3+6)],即[5,7,9]
  • axis=1就是指代沿行的方向进行计算,结果就是[(1+2+3), (4+5+6)],即[6,15]

对于三维数组,sum(axis=0)就相当于前后2个二维数组的对应元素相加:
在这里插入图片描述

a3.sum(axis=0)

在这里插入图片描述
其他的函数例如max, min, average, amax等,在计算时都需要指定axis参数,理解n维数组及axis含义有助于正确使用这些函数。

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

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

相关文章

创建Apple开发者ID及ABM账号教程

申请苹果开发者账号和ABM (Apple Business Manager) 账号,以便在iPhone(IOS平台)上发布和管理汽应用。申请需要遵循一系列步骤。以下是详细的申请流程: 一、苹果开发者账号申请流程 1. 注册Apple ID - 访问…

打卡第34天------动态规划

我目前刷leetcode上的题的时候,不仅每天按照代码随想录的算法训练营的进度来刷题,也会自己开始在leetcode上刷题了,有些简单的题目,不用看题解就能做出来了,这也是一种进步呀。希望可以尽快找到下家工作单位,分秒必争,不浪费自己的一分一毫时间,与时间赛跑的过程呀。 一…

文心一言 VS 讯飞星火 VS chatgpt (319)-- 算法导论22.3 11题

十一、请解释有向图的一个结点u怎样才能成为深度优先树中的唯一结点,即使结点u同时有入边和出边。如果要写代码,请用go语言。 文心一言: 在一个有向图中,如果结点u在深度优先搜索(DFS)的过程中成为深度优…

【面试高频,必知必会】OpenGL渲染流程

😎 作者介绍:欢迎来到我的主页👈,我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun(领取大厂面经等资料),欢迎加我的…

建议收藏:如何快速搭建一套仓库管理系统?

在工作中碰到仓库出错或因统计繁琐而加班到天亮都是常有的事情,工作效率真的很低。我相信这种的困境,不少同行朋友定能深有体会! 实话说,我们公司之前也曾尝试斥巨资引入传统仓库管理系统,但效果却不尽人意。不仅操作…

面试中的算法 [ 持续更新中 ] 基于Python语言 如何判断链表有环

本文主要介绍了如何判断链表有环的问题,并进行了延伸: 如果链表有环如何求出环的长度,入环节点... ...嗯,点个赞总可以不!!! 目录 5.1如何判断链表有环 5.1.1 有一个单向链表,链表…

动态规划之——背包DP(进阶篇)

文章目录 概要说明多重背包(朴素算法)模板例题思路code 多重背包(二进制优化)模板例题思路code 多重背包(队列优化)模板例题思路 混合背包模板例题思路code1code2 二维费用背包模板例题思路code 概要说明 本文讲多重背包、混合背包以及二维费用背包&…

汇聚行业实践,树立应用典范——《Serverless应用实践案例集》重磅发布

云计算已经成为数字时代的基础设施,借助其规模效应实现资源的集约化利用,最大化发挥计算的价值。Serverless进一步优化了云服务供给模式,简化了云上应用的构建方式,代表了云计算的重要发展趋势。 2024年7月24日,2024可…

【Java】二维码生成工具

一、引入相关依赖 <!-- 引入Hutool工具库&#xff0c;简化Java开发&#xff0c;提高开发效率 --> <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.5</version> </dependency&…

LearnOpenGL之摄像机

前序 AndroidLearnOpenGL是本博主自己实现的LearnOpenGL练习集合&#xff1a; Github地址&#xff1a;https://github.com/wangyongyao1989/AndroidLearnOpenGL 系列文章&#xff1a; 1、LearnOpenGL之入门基础 2、LearnOpenGL之3D显示 3、LearnOpenGL之摄像机 4、LearnOpenG…

UNION ALL 在单个子查询中排序不生效问题

业务场景 有两张表&#xff1a;表A&#xff0c;和表B&#xff0c;需要对A中数据按排序字段排序&#xff0c;对B表也按排序字段排序&#xff0c;然后返回并集。 写出如下SQL&#xff08;已简化&#xff09;&#xff1a; (select id from A order by sort desc) union all (se…

《python语言程序设计》2018年版第6章31题调用time.time()返回从1970年1月1日0点开始显示当前日期和时间

我没按要求显示结果。但是内容差不都&#xff0c;关键。每个31日或者月底就时间出现偏差 # 之前已经做好的当前的小时、分、秒。 def currentTime_output():currentTime time.time()totalSeconds int(currentTime)currentSecond totalSeconds % 60totalMinutes totalSecon…

正点原子imx6ull-mini-Linux驱动之Linux USB 驱动实验

USB 是很常用的接口&#xff0c;目前大多数的设备都是 USB 接口的&#xff0c;比如鼠标、键盘、USB 摄像 头等&#xff0c;我们在实际开发中也常常遇到 USB 接口的设备&#xff0c;本章我们就来学习一下如何使能 Linux 内核自带的 USB 驱动。注意&#xff01;本章并不讲解具体的…

本阿弗莱克和詹妮弗洛佩兹两次婚恋的完整时间表 每次都轰轰烈烈也都无疾而终

本阿弗莱克和詹妮弗洛佩兹于 2002 年在《鸳鸯绑匪》片场首次相识&#xff0c;当时洛佩兹与她的第二任丈夫克里斯贾德于 2001 年 9 月结婚。当时&#xff0c;阿弗莱克与格温妮丝帕特洛分分合合。洛佩兹提出离婚&#xff0c;不久后与阿弗莱克首次亮相情侣档。 2002 年 11 月&…

JavaEE: 死锁问题详解(5000字)

文章目录 死锁的出现场景1. 一个线程一把锁,这个线程针对这把锁,连续加锁了两次2. 两个线程,两把锁3. N个线程 , M个锁4. 内存可见性为什么会出现内存可见性问题呢?解决方法 volatile关键字 总结synchronized:死锁的四个必要条件(缺一不可)[重点]:内存可见性问题: 死锁的出现场…

【iOS】暑假第二周——网易云APP 仿写

目录 前言首页关于UINavigationBarAppearance “我的”账号夜间模式——多界面传值遇到的问题所用到的其他知识整理NSNotificationreloadData各种键盘模式 总结 前言 有了之前仿写ZARA的基础&#xff0c;本周我们仿写了网易云APP&#xff0c;在这里对多界面传值进行了首次应用—…

LISA: Reasoning Segmentation via Large Language Model

发表时间&#xff1a;CVPR 2024 论文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2024/papers/Lai_LISA_Reasoning_Segmentation_via_Large_Language_Model_CVPR_2024_paper.pdf 作者单位&#xff1a;CUHK Motivation&#xff1a;尽管感知系统近年来取得了显…

基于SSH的医院在线挂号系统设计与实现

点击下载源码 基于SSH的医院在线挂号系统设计与实现 摘 要 互联网技术迅速的发展给我们的生活带来很大的方便&#xff0c;同时也让许多行业迅速的发展起来。互联网技术已走向科技发展的巅峰期&#xff0c;我们要做的就是合理的使用互联网技术让我们的各个行业得到更快速的发展…

2024杭电多校06——1005交通管控

补题点这里 大意 一个操作杆可以对k个红绿灯进行操作&#xff0c;操作杆上的一个字符对应一个红绿灯&#xff0c;操作包括,-,0,问每种组合方案有多少种组合方式 : red->green->yellow->red -:green->red->yellow->green 可以用一个三进制数表示每个灯的状态…

Python(模块---pandas+matplotlib+pyecharts)

import pandas as pd import matplotlib.pyplot as plt dfpd.read_excel(简易数据.xlsx) # print(df) plt.rcParams[font.sans-serif][SimHei] #设置画布的大小 plt.figure(figsize(10,6)) labelsdf[电影中文名] ydf[国籍] # print(labels) # print(y)# import pandas as pd im…