Python中的axis参数的具体使用

 更新时间:2021年12月22日 09:42:13   作者:二哥不像程序员  
在我们使用Python中的Numpy和Pandas进行数据分析的时候,经常会遇到axis参数,本文就来介绍一下axis参数的具体使用,感兴趣的可以了解一下

在我们使用Python中的Numpy和Pandas进行数据分析的时候,经常会遇到一个让人感到头痛的参数——axis,本文让我们换一个角度来重新认识一下axis。

一、axis简介

通常情况下我们都会赋予axis参数“轴”的概念,对于常见的二维数据来说,我们有如下的表示形式:

在这里插入图片描述

对于这种常见的结构来说,看上去很清晰,但是涉及到实际操作的时候就会变的难以理解,下面让我们用色横货中的例子来学习一下。

二、不一样的axis

对于axis=0

当axis=0的时候,我们可以将数据和轴组成的整体看作是一串竖着摆放的糖葫芦(棍垂直于水平面)示例如下图所示:

在这里插入图片描述

此时图中的[1,2,3]、[4,5,6]可以分别看作是糖葫芦的两个果子,而红色的轴则表示穿着果子的棍(axis=0),对于此时的状态,每个果子是一个整体,当进行sum()加和操作时,我们需要将两个果子对应位置的数据进行相加而不是将每个果子进行加和,最终可以得到结果[5,7,9]

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
np.sum(a, axis=0)

# 结果
# array([5, 7, 9])

当进行元素添加操作的时候,我们所做的事情就是在原有的糖葫芦基础上添加一个果子,果子的结构也要像前两个果子的结构一样,示例图如下所示:
在这里插入图片描述
此时操作的示例代码如下所示:

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
np.append(a, [[7, 8, 9]], axis=0)

# 结果
# array([[1, 2, 3],
#        [4, 5, 6],
#        [7, 8, 9]])

对于带有参数axis=0删除等操作也同添加的思想一样,只要我们将其想象成在操作糖葫芦的果子即可。

三、总结

当axis=1的时候不难想到,我们要做的操作就是在一根水平摆放的糖葫芦上进行,所有操作的基本原理都和axis=0时相同。

补充:python中某些函数axis参数的理解

总结为一句话:设axis=i,则numpy沿着第i个下标变化的方向进行操作。

当然,这个i是从0开始数的,作为程序员的你一定不会搞错。

axis意为“轴”,它指定了函数在张量(矩阵、等等)上进行操作的方向。
例如有一个ndarray,名叫A,A.shape=(3,8,5,7)。
那么np.sum(A, axis=2)计算的结果的shape就是(3,8,7)。
假设这个shape是(3,8,7)的ndarray变量名为B,那么实际上:

B[i][j][k]=A[i][j][0][k]+A[i][j][1][k]+A[i][j][2][k]+A[i][j][3][k]+A[i][j][4][k]

以下代码你可以自己跑一下试试:

import numpy as np

A=np.random.randn(3,8,5,7)
print("A.shape=",A.shape)

B=np.sum(A,axis=2)
print("B.shape=",B.shape)

预期输出为:

A.shape= (3, 8, 5, 7)
B.shape= (3, 8, 7)

到此这篇关于Python中的axis参数的具体使用的文章就介绍到这了,更多相关Python axis参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Django+uwsgi+Nginx上线最佳实战

    详解Django+uwsgi+Nginx上线最佳实战

    这篇文章主要介绍了Django+uwsgi+Nginx上线最佳实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Python如何计算语句执行时间

    Python如何计算语句执行时间

    这篇文章主要介绍了Python如何计算语句执行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 使用DataFrame删除行和列的实例讲解

    使用DataFrame删除行和列的实例讲解

    下面小编就为大家分享一篇使用DataFrame删除行和列的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    这篇文章主要介绍了PyQt5.6+pycharm配置以及pyinstaller生成exe,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 一文详解Python如何处理函数调用超时问题

    一文详解Python如何处理函数调用超时问题

    在Python开发中,我们经常会遇到需要控制函数执行时间的场景,本文将深入探讨Python中处理函数调用超时的几种方法,感兴趣的小伙伴可以参考一下
    2025-04-04
  • python基于Opencv实现人脸口罩检测

    python基于Opencv实现人脸口罩检测

    最近尝试做一个python基于Opencv实现人脸口罩检测,记录一下过程,稍微整理精简一下做下分享,需要的小伙伴可以参考下
    2021-06-06
  • PyQt5 QTableView设置某一列不可编辑的方法

    PyQt5 QTableView设置某一列不可编辑的方法

    今天小编就为大家分享一篇PyQt5 QTableView设置某一列不可编辑的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 深入理解pytorch库的dockerfile

    深入理解pytorch库的dockerfile

    这篇文章主要介绍了pytorch库的dockerfile,主要包括dockerfile命令,使用指令的注意点及存在的一些问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 深入探究Python如何实现100个并发请求

    深入探究Python如何实现100个并发请求

    在Web开发和数据抓取等领域,并发请求是提高效率和性能的重要手段,本文将深入探讨如何使用Python实现100个并发请求,感兴趣的小伙伴可以了解下
    2025-02-02
  • pyautogui自动化控制鼠标和键盘操作的步骤

    pyautogui自动化控制鼠标和键盘操作的步骤

    这篇文章主要介绍了pyautogui自动化控制鼠标和键盘操作的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论