小白都能看懂的numpy与pandas中axis解释
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
1.axis参数
在numpy与pandas,以及各种涉及到数值计算的类库中,都会有axis这个参数。这个参数非常重要,初学者理解起来比较困难,如果按二维矩阵中行列的概念去理解会比较难理解。今天咱们用另外一种角度去理解axis参数,比较清晰更容易理解。
2.二维的情况
先看一个例子
data = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=['c1', 'c2', 'c3', 'c4'], dtype=int)
这个dataframe为
c1 c2 c3 c4
0 1 1 1 1
1 2 2 2 2
2 3 3 3 3
print data.mean(axis=0)
沿着axis=0的方向求平均值,最终的结果是
c1 2.0
c2 2.0
c3 2.0
c4 2.0
如果沿着axis=1的方向球平均值,最终结果为
0 1.0
1 2.0
2 3.0
原始数组的维度为3*4。axis=0,相当于是拿掉外层的括号,消灭了"行"的维度,然后对第一列,第二列,第三列,第四列各自求平均。最后求平均值的结果就是消灭了最外层的维度,也就是3这个维度,剩下的结果是一个4维的向量。
同理,如果 axis=1,相当于拿掉的是里层的括号,消灭了"列"的维度,然后对每一行各自求平均。最后的结果就是消灭了里层的维度,也就是4这个维度,剩下的结果是一个3维的向量。
print data.drop('c4', axis=1)
上面drop的逻辑,同理是沿着内层的括号进行操作。最终是内层的维度被drop掉了一列,得到一个3*3的矩阵,结果如下
c1 c2 c3
0 1 1 1
1 2 2 2
2 3 3 3
3.多维情况
再看一个多维的情况
data = np.arange(24).reshape(2, 3, 4)
[[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]]
这个多维数组的维度是2∗3∗42*3*42∗3∗4,同样我们来做一下求平均操作
print data.mean(axis=0)
按照上面的理解, axis=0是最外层的括号。最终得到的结果维度为3*4。
[[ 6. 7. 8. 9.][10. 11. 12. 13.][14. 15. 16. 17.]]
具体的计算逻辑为:我们要消灭的维度为2,所以参与计算的元素是两个,比如6这个值,是0与12求平均的结果,结果矩阵b中b[0][0]是a[0][0][0]与a[1][0][0]求平均的结果!
print data.mean(axis=1)
要消灭的维度为3,参与计算的元素是3个,最后的结果是2*4。
[[ 4. 5. 6. 7.][16. 17. 18. 19.]]
结果矩阵b[0][0]是a[0][0][0]+a[0][1][0]+a[0][2][0]平均的结果
print data.mean(axis=2)
结果如下
[[ 1.5 5.5 9.5][13.5 17.5 21.5]]
具体分析过程与前面类似,就不再重复。
小白都能看懂的numpy与pandas中axis解释相关推荐
- 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...
一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)
小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...
- c语言程序和plc程序的区别,一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!...
原标题:一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂! 你真的了解PLC吗?你知道PLC与计算机的本质区别吗?我来简单解释一下吧. 1.PLC可以工作在极其恶劣的电磁环境中 如果我们把计算机 ...
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)
小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第一讲 博主博客文章内容导航(实时更新) 更多优质文章推荐: 收藏!最详细的P ...
- 红色买绿色出 简单易操作的买卖点公式 散户小白都能看懂
好久没来csdn了,在最初,CSDN是用来记录我做前端写的笔记,后面在工作期间,接触了产品,就转岗了,慢慢的,csdn就很少写了,但是我觉得这里可以作为我记录心得的一个地方,还是挺好的. 因为产品规划 ...
- 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理
本文来自:石杉的架构笔记 目录 一.前奏 二.HDFS的NameNode架构原理 一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN ...
- 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构
点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 (1)TB级数据放在一台机器上:难啊! (2 ...
- 小白都能看懂的关于Mixins机制的理解
前言 在学习Flutter源码的时候,看到各种复杂的mixin和on,为了便于后续Flutter的学习,这里有必要一起来份详细Dart 的 Mixin机制. 什么是mixins 首先看看官方文档的 ...
- 黑苹果电池电量补丁_小白都能看懂的DSDT电量显示补丁教程
[TOC] 简介 知识储备DSDT 正则匹配(不懂就依葫芦画瓢) 背景 由于普通PC的电池设备并不兼容与苹果的SMbus设备,所以,对于黑苹果,只能够通过ACPI来获取电池状态.为了解决电量显示我可是 ...
- BUI框架中 使用Jpush极光推送,单推跟群推,尽量让小白都能看懂
1.先贴一下自己使用的Cordvoa版本 2.再贴一下自己使用的极光推送版本 3.极光推送GitHub地址:点击打开 4.小白常见问题 Crodova打包,编译出错. Crodova打包后,提示JPu ...
最新文章
- os x 10.9.5怎么升级_鸿蒙手机系统终于定档!华为官宣发布时间,首批升级名单已出炉...
- 【机器学习基础】数学推导+纯Python实现机器学习算法17:XGBoost
- 【转】SSL/TLS/WTLS协议原理
- 反射应用二:利用反射加配置文件实现多数据库的访问
- 算法设计之0-1背包问题
- 把图标变成圆形的html_3组24个CSS3分享图标,可旋转和悬停
- 【半原创】将js和css文件装入localStorage加速程序执行
- python学习——matplotlib库——折线图
- I Think I Can!
- 变速恒频风电机组的优缺点_风电消防安全解决方案解析
- hdu 吉哥系列故事——完美队形 (最长公共子序列)
- html脚注制作,幸福西饼:静态页面制作项目总结
- 发了一篇小红书,阅读量破了20W...
- 使用QQ邮箱无法收到Github上发送的验证码?
- listview winfrom 表头_c# listview添加表头
- 英语前后缀大全 - 快速理解英语单词
- 升级Mac内置的vim
- bootstrap之入门教程
- SQL 查询排名,相同数据排名相同
- 即将到来的风暴 ― SDN/NFV探讨