Python中的axis参数的具体使用

作者:二哥不像程序员 时间:2021-06-14 19:42:53 

目录
  • 一、axis简介

  • 二、不一样的axis

    • 对于axis=0

  • 三、总结

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

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

      一、axis简介

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

      Python中的axis参数的具体使用

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

      二、不一样的axis

      对于axis=0

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

      Python中的axis参数的具体使用

      此时图中的[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])

      当进行元素添加操作的时候,我们所做的事情就是在原有的糖葫芦基础上添加一个果子,果子的结构也要像前两个果子的结构一样,示例图如下所示:
      Python中的axis参数的具体使用
      此时操作的示例代码如下所示:


      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)

      来源:https://blog.csdn.net/qq_35164554/article/details/122043839

      标签:Python,axis,参数
      0
      投稿

      猜你喜欢

    • python调用win32接口进行截图的示例

      2021-07-22 07:19:45
    • Python Pyinstaller库安装步骤以及使用方法

      2021-05-12 07:07:26
    • python开发一款翻译工具

      2022-01-19 07:28:43
    • 细说NumPy数组的四种乘法的使用

      2023-08-16 10:33:28
    • MySQL 数据库锁的实现

      2024-01-13 01:30:29
    • 详解如何在Apache中运行Python WSGI应用

      2021-05-16 05:24:03
    • python基础篇之pandas常用基本函数汇总

      2021-09-06 20:42:22
    • Pandas.DataFrame转置的实现 <font color=red>原创</font>

      2022-03-02 03:07:34
    • python opencv 批量改变图片的尺寸大小的方法

      2021-09-13 12:55:01
    • Python3 replace()函数使用方法

      2023-07-21 22:25:13
    • Django静态资源URL STATIC_ROOT的配置方法

      2022-11-24 00:06:53
    • Python第三方包之DingDingBot钉钉机器人

      2022-09-06 14:50:38
    • js实现的捐赠管理完整实例

      2023-08-22 05:25:14
    • 详解python使用金山词霸的翻译功能(调试工具断点的使用)

      2021-06-27 03:33:52
    • Mysql 插入中文及中文查询 (修改+调试)

      2024-01-21 23:52:42
    • css基础教程布局篇之一

      2008-07-31 17:21:00
    • 基于 Python实现云服务器的CDN域名远程鉴权配置

      2023-07-31 20:44:51
    • Python反爬虫技术之防止IP地址被封杀的讲解

      2022-05-09 10:44:12
    • mysql、mssql及oracle分页查询方法详解

      2024-01-21 15:11:34
    • Vue声明式渲染详解

      2024-04-30 10:22:25
    • asp之家 网络编程 m.aspxhome.com