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中使用Boolean操作符做真值测试实例
Jan 30 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
python使用KNN算法手写体识别
Feb 01 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
Python代码太长换行的实现
Jul 05 Python
简单了解Django应用app及分布式路由
Jul 24 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Python入门基础之数字字符串与列表
Feb 01 Python
Github 使用python对copilot做些简单使用测试
Apr 14 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 404错误页面实现代码
2009/06/22 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
基于jquery的模态div层弹出效果
2010/08/21 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Django模板Templates使用方法详解
2019/07/19 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
行政部主管岗位职责
2013/12/28 职场文书
领导干部考察材料
2014/02/08 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
设计大赛策划方案
2014/06/13 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书