【Numpy】对于 Numpy 中 Axis 的理解

news2024/12/28 19:45:49

文章目录

  • 前言
  • 理解轴的两个角度
    • 在维度变化方向上计算
    • 降维
  • 示例剖析
  • 写在最后

前言

Numpy 是 Python 中一个常用科学计算库,常用来表示向量、矩阵以及多维度数组。在 Numpy 中多对某一个维度(轴)进行相应的操作,这一点经常出错。今天就来讨论一下 Numpy 中的 axis 问题。

axis 从字面来看是轴的意思,在小学阶段,我们就学过坐标系,对轴的这个概念应该都不会陌生。比如,在平面直角坐标系中就有 x 轴 和 y 轴。在NumPy中,array是一个的核心数据结构,用于存储和操作多维数据。array可以是一维的,也可以是多维的。不论是多维数组还是一维数组,其每一个维度表示的都是一个轴。

理解轴的两个角度

对于二维数组有两个轴:axis = 0 和 axis = 1。axis = 0 表示横轴,确切地说是行变换的轴。相应的 axis = 1 表示的是列变化的轴。

imprt numpy as np

matrixA = np.array([[1, 8, 3, 9],
                    [4, 5, 6, 7]])

np.sum(matrixA, axis=0)	# 输出 [5, 13, 9, 16]

在维度变化方向上计算

在这样的一个示例中,matrixA 是一个二维数组,有两个维度,行和列。现在我们要对 matrixA 执行 np.sum 操作,Numpy 参考文档上对于该操作的释义是:Sum of array elements over a given axis. 可以理解为:对横跨指定轴数组元素求和。这里是 axis = 0,因而是对横跨 的数组元素求和,也就是在行变化方向上求和。 于是 np.sum(matrixA, axis=0) 的输出结果为 [5, 13, 9, 16]。

降维

还有一种理解方式,对指定轴进行压缩求和。这个例子中就是对行进行压缩求和,将两行压缩成一行,对应位置元素相加,也会得到正确的输出结果。

示例剖析

接下来用三维数组来验证一下我们对于 axis 的理解。三维数组的第一、二、三维度依次是下图中红、绿、蓝三个区域。

imprt numpy as np

a = np.arange(24).reshape((3, 2, 4))	# 利用 np.arange 生成 0~23, 接着用 reshape 修改成维度为 (3, 2, 4) 的array 

# a 的输出结果
"""
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])
"""

np.sum(a, axis = 1)	# 对第二维度求和

# 输出结果
"""
array([[ 4,  6,  8, 10],
       [20, 22, 24, 26],
       [36, 38, 40, 42]])
"""

Snipaste_2024-04-18_15-48-36

按照 在维度变化方向上计算 来理解,第一维度不变,在第二维度也就是行的变化方向上进行元素相加,于是得到 array([[ 4, 6, 8, 10], [20, 22, 24, 26], [36, 38, 40, 42]])。

按照 降维 来理解,第二维度的多行将被压缩成一行,最后得到的结果也是 array([[ 4, 6, 8, 10], [20, 22, 24, 26], [36, 38, 40, 42]])。

无论是从降维角度还是在维度变化方向上这个角度来看,这些操作本质上都实现了数组的降维。至于选择哪个角度来理解操作,因人而异。


写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家对于 axis 有更好的理解,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

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

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

相关文章

K8S一 k8s基础知识及实战

一 K8S 概览 1.1 K8S 是什么? K8S官网文档:https://kubernetes.io/zh/docs/home/ K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化&#xff08…

服务器数据恢复—RAID5故障导致SAP+oracle数据丢失的数据恢复案例

服务器存储数据恢复环境: 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。 服务器存储故障&分析: 该RAID5阵列中一块硬盘出现故障离线&#xff0…

进程管理命令

文章目录 一、进程管理相关命令top命令pgrep命令pstree命令进程树lsofvmstat 监控系统资源free 查看内存iostatiftop图形化管理界面总结 二、进程管理启动结束进程 三、计划任务atcrontab周期 一、进程管理相关命令 top命令 ps 命令可以一次性给出当前系统中进程状态&#xf…

HarmonyOS实战开发-如何实现一个简单的健康生活应用

功能概述 成就页面展示用户可以获取的所有勋章,当用户满足一定的条件时,将点亮本页面对应的勋章,没有得到的成就勋章处于熄灭状态。共有六种勋章,当用户连续完成任务打卡3天、7天、30天、50天、73天、99天时,可以获得…

百肤谜 百肤护航医学公益活动启动仪式

近日,中国整形美容协会同知名意大利医美品牌百肤谜联合开展的百肤护航问题肌肤医学公益活动正式启动。众所周知,肌肤健康是一个关乎到个人门面和内心自信的重要议题,也是医疗美容行业关注和发展的核心方向之一。这一公益活动的正式启动,不仅体现了双方对提升公众健康意识和推动…

【练习】二分查找思想

🎥 个人主页:Dikz12🔥个人专栏:算法(Java)📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 二分查找算法介绍 1.二分查找 题目描述 讲解 ​编辑 代码实现 2.…

【剪映专业版】09定格、倒放、镜像、旋转、裁剪

视频课程:B站有知公开课【剪映电脑版教程】 分别为定格、倒放、镜像、旋转、裁剪 定格 时间指示器移动到需要定格的地方,点击定格,自动生成一张图片,时长为3秒。 定格出来的画面,可以任意调整长短时间。 如果需要导…

LeetCode in Python 509. Fibonacci Number (斐波那契数)

斐波那契数实现方式有多种方法,最容易理解的为递归法,也可使用动态规划降低时间复杂度,本文给出递归法和动态规划两种方法的代码实现。 示例: 图1 斐波那契数输入输出示例 方法一:递归法 代码: class …

Flume 入门教程

内容目录 Flume 简介 架构和基本概念 多种架构模式 Flume 安装部署 Flume 简介 Flume 是一个分布式、可靠且高可用的数据收集、聚合和传输系统,主要用于高效地处理大规模日志数据。设计之初,它主要服务于日志管理领域,但其灵活性和可扩展…

什么是SD-WAN

SD-WAN是一种软件定义的广域网技术,通过集中控制和动态路由优化网络性能、可靠性和安全性。它简化了网络管理,提高了连接性和可靠性,适用于各种规模的企业。SD-WAN提供了多种好处,包括降低成本、提高性能、简化管理等。它与物联网…

【系统分析师】系统规划

文章目录 1、项目的机会选择2、可行性分析3、成本效益分析3.1 基本概念3.2 盈亏临界分析3.3 净现值分析3.4 投资回收期 截图:希赛讲义 视频:B站 系统规划对应的是 立项 阶段 1、项目的机会选择 2、可行性分析 3、成本效益分析 3.1 基本概念 例题 3.2 盈…

1.C++入门

1.关键字(C98) 2.命名空间 在 C/C 中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是 对标识符的名称进行本地化 &#xff…

基于springboot实现电影评论网站系统设计项目【项目源码+论文说明】计算机毕业设计

基于springboot实现电影评论网站系统设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评论网站的开发全过程。通过分析电影评论网站管理的不足,创建了一个计算机管理电影评论网站的方案…

component-Echarts柱状图堆叠图与折线图的实现

1.效果 2.​​​​​代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>ECharts 实例</title><!-- 引入 echarts.js --><script src"https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js&…

Linux笔记之查看docker容器目录映射

Linux笔记之查看docker容器目录映射 —— 2024-04-15 code review! docker inspect 容器ID或容器名 | grep -A 20 Mounts实践 grep -A 参数详解&#xff1a; grep 的 -A 参数用于在输出中包括匹配行后的指定数目的行。 使用 -A 参数 该参数的基本语法如下&#xff1a; …

靠谱教育,信赖梵宁——辽宁梵宁教育设计培训风采展示

在快速发展的现代社会&#xff0c;教育已经成为每个人成长道路上不可或缺的一环。而辽宁梵宁教育&#xff0c;以其靠谱的教育理念和专业的设计培训&#xff0c;赢得了广大学员的信赖和好评。今天&#xff0c;就让我们一起走进辽宁梵宁教育&#xff0c;领略其设计培训的风采。 …

Linux_CentOS7/8系统 - 关闭图形界面新增用户机制手册

Linux_CentOS7/8系统 - 关闭图形界面新增用户机制手册 在系统完成图形界面安装后重新启动后第一次登入&#xff0c;在图形界面会有新增用户页面&#xff0c;那如果取消关闭可以按以下操作&#xff1a; CTRLALTF2 root账号登录 yum remove gnome-initial-setup -y init 3 init …

基于SpringBoot+Vue的民宿在线预定平台(含源码数据库+文档免费送)

基于SpringBootVue的民宿在线预定平台&#xff08;含源码数据库文档免费送&#xff09; 项目视频演示&#xff1a; 基于SpringBootVue的民宿在线预定平台 开发系统:Windows10 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql8.0 数据库可视化工…

OpenHarmony实战开发-如何实现防盗链应用功能。

介绍 目前许多网络图片资源有防盗链功能&#xff0c;需要在请求头中设置正确的Referer。本模块使用了第三方库imageknife&#xff0c;通过在请求头中添加Referer来获取防盗链图片功能。同时我们可以设置请求头中的其他参数&#xff0c;比如User-Agent来设置客户端&#xff0c;…

【python】flask中ORM工具SQLAIchemy,各种数据查询操作详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…