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中元祖、列表和字典的区别
Aug 17 Python
python中range()与xrange()用法分析
Sep 21 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
python操作mysql数据库
Mar 05 Python
python装饰器实例大详解
Oct 25 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python中函数参数调用方式分析
Aug 09 Python
django解决跨域请求的问题
Nov 11 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
python tkinter组件使用详解
Sep 16 Python
在python里创建一个任务(Task)实例
Apr 25 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开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
学习vue.js计算属性
2016/12/03 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
JavaScript如何操作css
2020/10/24 Javascript
Python实现两个list对应元素相减操作示例
2017/06/09 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python调用c++传递数组的实例
2019/02/13 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python 日期排序的实例代码
2019/07/11 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
pytorch masked_fill报错的解决
2020/02/18 Python
基于python 凸包问题的解决
2020/04/16 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
幼儿园中班教学反思
2014/02/10 职场文书
党员群众路线承诺书
2014/05/20 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
总经理致辞
2015/07/29 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL