python axes_对Numpy中轴(axes)的解释(汉化版)
从困惑到解惑
当你困惑时,甚至需要颠覆世界观,原本的知识体系造成的理所当然的直觉恰恰相反,像骑了一个往前蹬却往后走的自行车一样别扭难受--反直觉(Counter Intuitive)
找到一个完美教程非常难得
逐字不差的阅读且逐字不差的翻译
借助翻译软件(节省时间打字)
学好数据分析,得学好Numpy;学好Numpy,首先彻底理解“轴”的概念
阅读原文:
解释Numpy轴(axes)
本教程将介绍NumPy轴。
它将解释NumPy轴是什么。本教程还将解释轴如何工作,以及我们如何将它们与NumPy函数一起使用。
在我详细解释NumPy轴之前,让我先解释为什么NumPy轴存在问题。
NUMPY AXES很难理解
坦白来说。
NumPy轴是NumPy系统中最难理解的事情之一。如果您刚刚开始使用NumPy,则尤其如此。许多初学者都很难理解NumPy轴的工作原理。
别担心,不是你。许多Python数据科学初学者都在努力解决这个问题。
话虽如此,本教程将解释您需要了解的有关NumPy数组中的轴的所有基本知识。
让我们从基础开始。通过将NumPy轴连接到您已经知道的东西,我将使NumPy轴更容易理解。
NUMPY AXES类似于在坐标系中的轴
如果您正在阅读这篇博文,那么您可能需要参加几门数学课程。
当你第一次学习图形时,回想一下早期的数学。您了解了笛卡尔坐标。
NumPy轴与笛卡尔坐标系中的轴非常相似。
类比:笛卡尔坐标系坐标轴
简单的二维笛卡尔坐标系具有两个轴,即x轴和y轴。
这些轴基本上只是笛卡尔空间中的方向(正交方向)。
此外,我们可以通过它沿每个轴的位置来识别笛卡尔空间中点的位置。
image.png
NUMPY 的轴是行和列的方向
就像坐标系一样,NumPy阵列也有轴。
image.png
在二维NumPy数组中,轴是沿行和列的方向。
AXIS 0是沿着行的方向
假设我们讨论的是多维数组,那么轴0就是向下行的轴。
image.png
请记住,这确实适用于二维数组和多维数组。一维数组是一个特例,我将在本教程的后面解释。
AXIS 1是沿着列的方向
在多维NumPy阵列中,axis1是第2轴。当我们谈论二维和多维数组时,axis1是横跨列水平延伸的轴。
image.png
再一次,请记住,一维数组的工作方式略有不同。从技术上讲,1-d阵列没有轴1.我将在本教程后面详细解释。
NUMPY ARRAY AXES以'0'开头
在这一点上可能很明显,但我应该指出NumPy中的数组轴是编号的。
重要的是,它们从0开始编号。
这就像Python序列的索引值一样。在Python序列中 - 如列表和元组 - 序列中的值具有与之关联的索引。
所以,假设我们有一个带有几个大写字母的Python列表:
alpha_list = ['A','B','C','D']
如果我们检索第一个项目的索引值('A')......
alpha_list.index('A')
......我们发现'A'位于索引位置0。
这里,A是列表中的第一项,但索引位置为0。
基本上所有的Python序列都是这样的。在任何Python序列中 - 如列表,元组或字符串 - 索引从0开始。
NumPy轴的编号基本上以相同的方式工作。它们从0开始编号。因此“第一”轴实际上是“axis0”。“第二”轴是“axis1”,依此类推。
Numpy数组中轴的结构是重要的
在下一节中,我将向您展示如何在NumPy中使用NumPy轴的示例,但在我向您展示之前,您需要记住NumPy数组的结构很重要。
我刚才解释的细节,关于轴编号,以及哪个轴将影响您对我们使用的NumPy函数的理解。话虽如此,在继续讨论示例之前,请确保您真正理解我上面解释的有关Numpy轴的细节。
如果您有任何疑问或者您仍然对NumPy轴感到困惑,请在页面底部的注释中留下问题。
好。现在,让我们继续讨论这些例子。
关于如何使用NUMPY轴的示例
既然我们已经解释了NumPy轴的工作原理,那么让我们看一下NumPy轴如何使用的一些具体例子。
这些示例很重要,因为它们有助于培养您对NumPy轴在与NumPy函数一起使用时如何工作的直觉。
这尼玛也太多了!还是挑重点把!!!
建议:注意轴参数控制的内容
要了解如何在NumPy函数中使用axis参数,了解axis参数实际控制每个函数的内容非常重要。
这听起来并不总是那么简单。例如,在np.sum()函数中,axis参数的行为方式很多人认为是反直觉的。
我将在一分钟内解释它是如何工作的,但我需要强调这一点:非常注意axis参数实际控制每个函数的内容。
NUMPY SUM
在尝试理解NumPy sum中的axis时,您需要知道axis参数实际控制的是什么。
在np.sum()中,axis参数控制将聚合哪个轴。
换句话说,axis参数控制哪个轴将被折叠。
请记住,sum(),mean(),min(),median()和其他统计函数等函数会聚合您的数据。
为了解释“聚合”的含义,我将举一个简单的例子。
想象一下,你有一组5个数字。如果总结这5个数字,结果将是一个数字。求和有效地汇总了您的数据。它将大量的值折叠为单个值。
类似地,当您在带有axis参数的二维数组上使用np.sum()时,它会将二维数组折叠为一维数组。它会折叠数据并减少维度。
但哪个轴会被折叠?
将NumPy和函数与axis参数一起使用时,指定的轴是折叠的轴。
NUMPY SUM WITH AXIS = 0
在这里,我们将使用轴= 0的NumPy和函数。
创建一个简单的NumPy数组。
np_array_2d = np.arange(0, 6).reshape([2,3])
print(np_array_2d)
[[0 1 2]
[3 4 5]]
接下来,让我们使用axis= 0的NumPy求和函数sum。
np.sum(np_array_2d, axis = 0)
输出:array([3, 5, 7])
当我们设置axis = 0时,该函数实际上对列进行求和。结果是一个新的NumPy数组,其中包含每列的总和。为什么?轴0不是指行吗?
这让许多初学者感到困惑,所以让我解释一下。
正如我之前提到的,axis参数指示哪个轴折叠。
image.png
因此,当我们设置axis = 0时,我们不会对行进行求和。当我们设置axis = 0时,我们正在聚合数据,以便我们折叠行......我们将轴0折叠。
AXIS = 1的NUMPY SUM
print(np_array_2d)
[[0 1 2]
[3 4 5]]
np.sum(np_array_2d, axis = 1)
array([3, 12])
同样,使用sum()函数,axis参数设置在求和过程中折叠的轴。
image.png
代码具有跨列求和的效果。它折叠了axis1。
NUMPY CONCATENATE
现在让我们来看一个不同的例子。
在这里,我们将在使用NumPy连接函数(np.concatenate())的上下文中使用axis参数。
当我们将axis参数与np.concatenate()函数一起使用时,axis参数定义了我们堆叠数组的轴。
看例子:
np_array_1s = np.array([[1,1,1],[1,1,1]])
np_array_9s = np.array([[9,9,9],[9,9,9]])
array([[1, 1, 1],
[1, 1, 1]])
array([[9, 9, 9],
[9, 9, 9]])
#*use NumPy concatenate with axis = 0*
np.concatenate([np_array_1s, np_array_9s], axis = 0)
#输出
array([[1, 1, 1],
[1, 1, 1],
[9, 9, 9],
[9, 9, 9]])
让我们仔细评估语法在这里做了什么。
image.png
#*use NumPy concatenate with axis = 1*
np.concatenate([np_array_1s, np_array_9s], axis = 1)
#输出
array([[1, 1, 1, 9, 9, 9],
[1, 1, 1, 9, 9, 9]])
但是,让我们快速回顾一下这里发生了什么。
image.png
警告:1维阵列的工作方式不同
希望这个NumPy轴教程可以帮助您了解NumPy轴的工作原理。
但在我结束教程之前,我想给你一个警告:一维数组的工作方式不同!
一维NUMPY数组只有一个轴(即axis=0)
image.png
示例:连接1-D阵列(一维数组)
np_array_1s_1dim = np.array([1,1,1])
np_array_9s_1dim = np.array([9,9,9])
[1 1 1]
[9 9 9]
np.concatenate([np_array_1s_1dim, np_array_9s_1dim], axis = 0)
array([1, 1, 1, 9, 9, 9])
这个输出让许多初学者感到困惑。数组水平连接在一起。
这与函数在二维数组上的工作方式不同。如果我们在二维数组上使用np.concatenate()和axis = 0,则数组将垂直连接在一起。
在这种情况下,该功能正常工作。NumPy连接是沿着轴0连接这些数组。问题是在1-d数组中,轴0不像在2维数组中那样指向“向下”。
示例:连接1-D阵列时的报错,AXIS = 1
np.concatenate([np_array_1s_1dim, np_array_9s_1dim], axis = 1)
IndexError: axis 1 out of bounds [0, 1)
一位数组只有一个轴。
总结:
将NumPy轴视为我们可以执行操作的方向。
将NumPy轴视为我们可以执行操作的方向。
将NumPy轴视为我们可以执行操作的方向。
python axes_对Numpy中轴(axes)的解释(汉化版)相关推荐
- python中文版免费下载-Python IDLE汉化版下载
Python IDLE(Python集成开发环境)是一款汉化版的Python集成开发环境,是一款专门用于各类非商业Python开发的选择,不过一般下载正版的python后,IDLE会自动安装,软件涵盖 ...
- python中文版软件下载-专业PYTHON开发工具——PyCharm中文汉化版下载(图文)
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
- python汉化 草蟒_草蟒首页、文档和下载 - Python 汉化版 - OSCHINA - 中文开源技术交流社区...
草蟒是基于 Python 的全中文编程语言. 示例 1: # 截至 n 的斐波那契数列 >>> 函 斐波那契数列(n): >>> a, b = 0, 1 >& ...
- Python下载和安装及Pycharm专业版安装+汉化+解决安装常见问题超详细教程(图解)
目录 前言 一.Python下载和安装 1.Python的下载 2.1,Python的安装 2.2,Python自定义安装 3. 检查Python是否正确安装 4,卸载 二.Pycharm专业版安装+ ...
- python安卓版汉化版-手机随时随地写Python,还可以开发安卓APP,太厉害了!
python, 近五年最为火爆的编程语言,语法优雅,类库丰富,一行代码即可完成 Java 十行代码量. 本次,舞剑来推荐一款手机端使用 Python 的APP. QPython QPython是安卓上 ...
- Python 教程之 Numpy(4)—— 数据类型对象
每个 ndarray 都有一个关联的数据类型 (dtype) 对象.这个数据类型对象(dtype)告诉我们数组的布局.这意味着它为我们提供了以下信息: 数据类型(整数.浮点数.Python 对象等) ...
- 卧槽!微软Python入门课居然汉化了!
去年,微软上线了自己的Python入门课程.一时间,好评如潮.但是真正看完这个课程的国人非常少,因为它的翻译实在是太烂了(英文听力好的人应该看的还是很爽的).很明显,微软直接采用了机器翻译,导致视频的 ...
- python环境搭建和pycharm的安装配置及汉化(零基础小白版)
前言:写这篇文章主要是介绍一下python的环境搭建和pycharm的安装配置,适合零基础的同学观看.这篇文章你会学到python的环境搭建和python比较好用的IDE pycharm的安装与基础配 ...
- Python的准备工作——安装、配置、第一个项目、汉化(可不做)
安装.配置步骤 1.下载python 2.下载集成开发环境pycharm 3.安装python 4.安装pycharm 5.使用Pycharm创建第一个Python项目 6.汉化 1.下载python ...
最新文章
- Example of how to use both JDK 7 and JDK 8 in one build.--reference
- 安居客检测到网页抓取_原创内容不收录 解决网站抓取异常的有效分析方法
- wxWidgets:源代码概览
- 厉害了,Servlet3的异步处理机制
- 【使用注意】Boolean是final类型,值初始化后不能被更改
- Catkin工作空间 (重点)
- ES_BoolQueryBuilder
- [NOIp2017 TG Day2 T2] 宝藏
- dnf红眼补丁在哪下载_dnf补丁下载到哪里
- NSString NSCFString isMemberOfClass 遇到的相关的问题
- c语言程序细菌分组实验报告,案例:细菌实验分组 - nimozp的个人空间 - OSCHINA - 中文开源技术交流社区...
- 气象数据统一服务接口(MUSIC)简介
- 拼多多店铺如何快速装修?
- 数据库sql文件导入失败(高版本转入低版本),报错:[SQL] Query test start[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
- c#中如何进行com口操作?
- 操作系统实验二——时间片轮转调度算法(RR算法)(新进程放队首和队尾两种C++实现)
- 宜家新型智能灯泡被指易遭黑客入侵
- 一个解决MacBook Pro 突然连接无线不能上网 方案
- 鱼眼校正c语言算法,一种鱼眼图像逆向经纬映射的快速校正算法
- 微信开发者工具打不开 报错网络连接失败 解决方法