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的内存泄漏及gc模块的使用分析
Jul 16 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
Python实现的redis分布式锁功能示例
May 29 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python递归实现快速排序
Aug 18 Python
Python 支付整合开发包的实现
Jan 23 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
python编写微信公众号首图思路详解
Dec 13 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
django为Form生成的label标签添加class方式
May 20 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
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
js word表格动态添加代码
2010/06/07 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python下载文件时显示下载进度的方法
2015/04/02 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
考试不及格的检讨书
2014/01/22 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS