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 urllib、urllib2、httplib抓取网页代码实例
May 09 Python
python unittest实现api自动化测试
Apr 04 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
Python实现序列化及csv文件读取
Jan 19 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
pytorch 6 batch_train 批训练操作
May 28 Python
python之json文件转xml文件案例讲解
Aug 07 Python
PyTorch device与cuda.device用法
Apr 03 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP基础知识介绍
2013/09/17 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
vue实现选中效果
2020/10/07 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
flask框架视图函数用法示例
2018/07/19 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
大学生物业管理求职信
2013/10/24 职场文书
开业庆典策划方案
2014/02/18 职场文书
法语专业求职信
2014/07/20 职场文书
公安学专业求职信
2014/07/27 职场文书
综治维稳工作汇报
2014/10/27 职场文书
公务员个人总结
2015/02/12 职场文书
聚会通知怎么写
2015/04/23 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
数据设计之权限的实现
2022/08/05 MySQL