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递归查询菜单并转换成json实例
Mar 27 Python
python实现折半查找和归并排序算法
Apr 14 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
python字典一键多值实例代码分享
Jun 14 Python
python 实现识别图片上的数字
Jul 30 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Python3.10的一些新特性原理分析
Sep 15 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
3.从实例开始
2006/10/09 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python新手实现2048小游戏
2015/03/31 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
Python数据存储之 h5py详解
2019/12/26 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
一份Java笔试题
2012/02/21 面试题
人民调解员培训方案
2014/06/05 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android