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


Posted in Python onMay 27, 2019

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
  1   2   2   2   2
  2   3   3   3   3

如果我们调用df.mean(axis=1),我们将得到按行计算的均值

>>> df.mean(axis=1)
0  1
1  2
2  3

然而,如果我们调用 df.drop((name, axis=1),我们实际上删掉了一列,而不是一行:

>>> df.drop("col4", axis=1)
  col1 col2 col3
0   1   1   1
1   2   2   2
2   3   3   3

Can someone help me understand what is meant by an "axis" in pandas/numpy/scipy?

有人能帮我理解一下,在pandas、numpy、scipy三都当中axis参数的真实含义吗?

投票最高的答案揭示了问题的本质:

其实问题理解axis有问题,df.mean其实是在每一行上取所有列的均值,而不是保留每一列的均值。也许简单的来记就是axis=0代表往跨行(down),而axis=1代表跨列(across),作为方法动作的副词(译者注)

换句话说:

  • 使用0值表示沿着每一列或行标签\索引值向下执行方法
  • 使用1值表示沿着每一行或者列标签模向执行对应的方法

下图代表在DataFrame当中axis为0和1时分别代表的含义:

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

axis参数作用方向图示

另外,记住,Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释:

轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。

所以问题当中第一个列子 df.mean(axis=1)代表沿着列水平方向计算均值,而第二个列子df.drop(name, axis=1) 代表将name对应的列标签(们)沿着水平的方向依次删掉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
python3爬取数据至mysql的方法
Jun 26 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
pandas分组聚合详解
Apr 10 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
python实现定时发送邮件
Dec 23 Python
Django中session进行权限管理的使用
Jul 09 Python
Python3.7 新特性之dataclass装饰器
May 27 #Python
Python3多目标赋值及共享引用注意事项
May 27 #Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 #Python
python占位符输入方式实例
May 27 #Python
numpy.where() 用法详解
May 27 #Python
python numpy实现文件存取的示例代码
May 26 #Python
numpy linalg模块的具体使用方法
May 26 #Python
You might like
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
使用Python实现博客上进行自动翻页
2017/08/23 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
python中删除某个元素的方法解析
2019/11/05 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
python 元组和列表的区别
2020/12/30 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
websocket+sockjs+stompjs详解及实例代码
2018/11/30 HTML / CSS
软件测试企业面试试卷
2016/07/13 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
大学毕业生通用自荐信范文
2013/10/31 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
第一军规观后感
2015/06/12 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python