Python中的axis参数的具体使用
作者:二哥不像程序员 发布时间:2021-06-14 19:42:53
目录
一、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)
来源:https://blog.csdn.net/qq_35164554/article/details/122043839
猜你喜欢
- 获取输入的五个点画五边形def pentagonUpdate(): p = {} win = GraphWin(&q
- lxmllxml 是 Python 的一个库,用于解析和呈现 XML 和 HTML。它支持多种内置和第三方 XML 和 HTML 标记,例如
- 兼容主流浏览器,独立样式表,可以很方便的进行视觉效果自定义截图:模拟下拉菜单演示代码:<!DOCTYPE html PUBLIC &q
- PyQt5布局控件QGridLayout简介QGridLayout(网格布局)是将窗口分割成行和列的网格来进行排列,通常可以使用函数addW
- 一、开发环境Python版本:3.6.4相关模块:pygame模块;以及一些Python自带的模块。二、环境搭建安装Python并添加到环境
- 大家还是直接看代码吧~netG = Generator()print('# generator parameters:',
- 在我们制作网页的时候会经常碰到一些需求,如果不知道方法,说不定会困扰我们半天。其实实现它们都很简单,下面我们就一起来看看这些常用的网页编辑方
- 四年前写的一个内容管理系统,应用在公司内部网上,昨天DBA说其中的SQL语句未使用参数化的调用,导致服务器负担加重,资源占用大。并列出了几个
- Python中类似于PHP的数组的结构有list,tuple,dict和set, 其中list, tuple和set的类似于PHP的索引数组
- GetRepeatTimes(TheChar,TheString) 得到一个字符串在另一个字符串当中出现几次的函数(新)如:response
- 上一篇已经介绍了celery的基本知识,本篇以一个小项目为例,详细说明django框架如何集成celery进行开发。本系列文章的开发环境:w
- 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件。我的电脑默认的是QQ影音播放器,执行Python代码打开默认
- 对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子
- 引言:一开始二维码加群,但是呢,这个东西隔一段时间会过期,我需要 每隔一段时间去更新二维码,然后当群人数超过100人了,只能邀请进群, 这个
- Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护sessio
- matplotlib中的字体文件被封装在font_manager这个子模块中,fontManager.ttflist这个列表涵盖了所有Mat
- 研究编码,得知GB2312编码与区位码的关系,尝试之后,得此程序。搜索,似乎没人写,故发此地。1.简述(1)GB2312标准的定义,其实就是
- 前言昨天团队的学妹来问关于POP3协议的问题,所以今天稍稍研究了下POP3协议的格式和Python里面的poplib。而POP服务器往回传的
- 前言PHP 中有个释放变量的语句叫做unset(从PHP4开始unset已经不再是一个函数了,而是一个语句),本文主要给大家介绍了关于php
- 本文实例总结了Python实现string字符串连接的方法。分享给大家供大家参考,具体如下:以下基于python 2.7版本,代码片段真实有