Python中的axis参数的具体使用

目录
  • 一、axis简介
  • 二、不一样的axis
    • 对于axis=0
  • 三、总结
  • 补充:python中某些函数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参数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python之np.argmax()及对axis=0或者1的理解

    对于np.argmax()让我迷惑了很久,尤其是其中的axis=1的比较结果. 一.np.argmax()的理解 1.最简单的例子 假定现在有一个数组a = [3, 1, 2, 4, 6, 1]现在要算数组a中最大数的索引是多少.最直接的思路,先假定第0个数最大,然后拿这个和后面的数比,找到大的就更新索引.代码如下 a = [3, 1, 2, 4, 6, 1] maxindex = 0 i = 0 for tmp in a: if tmp > a[maxindex]: maxindex = i

  • Python之NumPy(axis=0 与axis=1)区分详解

    python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码: >>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \ columns=["col1", "col2", "col3", "col4"]) >>>df col1 col2 col3 col4 0 1 1 1 1

  • Python imread、newaxis用法详解

    这篇文章主要介绍了python imread.newaxis用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一:imread 用来读取图片,返回一个numpy.ndarray类型的多维数组,具有两个参数: 参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀) 参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什

  • 对python中array.sum(axis=?)的用法介绍

    根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0,1,2,3],[4,5,6,7]]和[[1,2,3,4],[5,6,7,8]]对应元素相加[[0+4,1+2,2+3,3+4],[4+5,5+6,7+7,7+8]]=[[1,3,5,7],[9,11,14,16]] 2.axis=1时, 对应的是第二个维度元素相加,这时候保留第一个维度的结构(第一

  • Python中的axis参数的具体使用

    目录 一.axis简介 二.不一样的axis 对于axis=0 三.总结 补充:python中某些函数axis参数的理解 在我们使用Python中的Numpy和Pandas进行数据分析的时候,经常会遇到一个让人感到头痛的参数--axis,本文让我们换一个角度来重新认识一下axis. 一.axis简介 通常情况下我们都会赋予axis参数"轴"的概念,对于常见的二维数据来说,我们有如下的表示形式: 对于这种常见的结构来说,看上去很清晰,但是涉及到实际操作的时候就会变的难以理解,下面让我们用

  • 深入理解python中函数传递参数是值传递还是引用传递

    目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用"的方式.实际上,这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典 或者列表)的引用,就能修改对象的原始值--相当于通过"传引用"来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用,就不能 直接修改原始对象--相当于通过"传值"来传递对象. 你可以在很多讨论该问题

  • Python中函数的参数定义和可变参数用法实例分析

    本文实例讲述了Python中函数的参数定义和可变参数用法.分享给大家供大家参考.具体如下: 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA(): pass 显然,函数funcA没有参数(同时啥也不干:D). 下面这个函数funcB就有两个参数了, def funcB(a,

  • python中sys.argv参数用法实例分析

    本文实例讲述了python中sys.argv参数用法.分享给大家供大家参考.具体分析如下: 在学python的过程中,一直弄不明白sys.argv[]的意思,虽知道是表示命令行参数,但还是有些稀里糊涂的感觉. 今天又好好学习了一把,总算是大彻大悟了. Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,以下两个例子说明: 1.使用sys.argv[]的一简单实例 import sys,os os.system(sys.argv[1]) 这个例

  • Python中的默认参数实例分析

    本文研究的主要是Python中的默认参数的相关内容,具体如下. 熟悉C++语言的可以知道,C++语言中的默认参数是写在函数声明中的,为语法糖,与函数的调用无关,是在函数调用的时候由编译器补齐参数然后进行调用. 而Python中的默认参数与其有相当大的不一样,如下例中的代码执行结果会是什么呢? def test_parameter(a, dfp=[]): dfp.append(a) print(dfp) test_parameter(1) test_parameter(2) test_parame

  • 关于python中plt.hist参数的使用详解

    如下所示: matplotlib.pyplot.hist( x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype=u'bar', align=u'mid', orientation=u'vertical', rwidth=None, log=False, color=None, label=None, stacked=False, hold=None, **kwarg

  • Python中的函数参数(位置参数、默认参数、可变参数)

    目录 一.位置参数 二.默认参数 三.可变参数 四.关键字参数 五.命名关键字参数 六.各种参数之间的组合 函数的参数:Python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广泛:不但使得函数能够处理复杂多变的参数,还能简化函数的调用. Python中的函数参数有如下几种:位置参数.默认参数.可变参数.关键字参数和命名关键字参数 一.位置参数 位置参数(positional arguments)就是其他语言的参数,其他语言没有分参数的种类是因为只有这一种参数, 所有参数都遵循

  • Python中的变量,参数和模块介绍

    目录 前言 1 变量 2 参数 3 模块 前言 简单的使用python函数之后,我们在日常开发中还需要经常使用的三个地方,分别是变量.参数和模块.其中,Python的变量类型已经在语法介绍中做了简单的使用描述.在本篇文章中,会更加强调变量的作用域,并分别介绍参数和模块的使用. 1 变量 首先,在python中,变量是存储在内存的值,程序在执行创建变量时会在内存中创建一个空间,并且根据变量的数据类型,python解析器会分配指定内存.变量标记或者指向一个值. 示例如下:与剧中的 color 就是一

  • Python中函数的参数类型详解

    目录 1.Python的函数参数的类型 2.Python的必传参数 3.关键字参数 4.默认参数 5.不定长参数 1.Python的函数参数的类型 必传参数:调用函数时必须传入的参数,函数定义时只定义参数名 关键字参数:传入时以函数的参数名值对的方式传入 默认参数:函数定义时为参数默认设置一个值,调用时不传输参数即以默认值处理 不定长参数:以*修饰或者**修饰的参数;*修饰的参数是一个元组(tuple),**修饰的参数必须是字典(dict),通常写作*args或者**args 2.Python的

  • Python中的默认参数详解

    文章的主题 不要使用可变对象作为函数的默认参数例如 list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug. 基本原理 在 Python 源码中,我们使用def来定义函数或者方法.在其他语言中,类似的东西往往只是一一个语法声明关键字,但def却是一个可执行的指令.Python代码执行的时候先会使用 compile 将其编译成 PyCodeObject. PyCodeObject 本质上依然

随机推荐