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编程之字符串模板(Template)用法实例分析
Jul 22 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
Python求解任意闭区间的所有素数
Jun 10 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
python web框架 django wsgi原理解析
Aug 20 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
python实现图片横向和纵向拼接
Mar 05 Python
python程序输出无内容的解决方式
Apr 09 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
用python自动生成日历
Apr 24 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
php生出随机字符串
2017/07/06 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
详解VUE 数组更新
2017/12/16 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
Python Cookie 读取和保存方法
2018/12/28 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
python如何实现递归转非递归
2021/02/25 Python
python常量折叠基础知识点讲解
2021/02/28 Python
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
关于美容院的活动方案
2014/08/14 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
国博复兴之路观后感
2015/06/02 职场文书
化工厂员工工作总结
2015/10/15 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL