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 19 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
理解python中生成器用法
Dec 20 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
python队列Queue的详解
May 10 Python
Django实现跨域请求过程详解
Jul 25 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
Python使用正则实现计算字符串算式
Dec 29 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
如何以Winsows Service方式运行JupyterLab
Aug 30 Python
Python使用for生成列表实现过程解析
Sep 22 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 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框架的优缺点对比分析
2014/12/25 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
Python 文件重命名工具代码
2009/07/26 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
python 如何引入协程和原理分析
2020/11/30 Python
kfc实习自我鉴定
2013/12/14 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
小学生常见病防治方案
2014/06/06 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
教师群众路线心得体会
2014/11/04 职场文书
意向协议书
2015/01/27 职场文书
护士心得体会范文
2016/01/25 职场文书
python入门之算法学习
2021/04/22 Python
Django如何与Ajax交互
2021/04/29 Python
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript