项目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解释相关推荐

  1. 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

    一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...

  2. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...

  3. c语言程序和plc程序的区别,一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!...

    原标题:一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂! 你真的了解PLC吗?你知道PLC与计算机的本质区别吗?我来简单解释一下吧. 1.PLC可以工作在极其恶劣的电磁环境中 如果我们把计算机 ...

  4. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)

    小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第一讲 博主博客文章内容导航(实时更新) 更多优质文章推荐: 收藏!最详细的P ...

  5. 红色买绿色出 简单易操作的买卖点公式 散户小白都能看懂

    好久没来csdn了,在最初,CSDN是用来记录我做前端写的笔记,后面在工作期间,接触了产品,就转岗了,慢慢的,csdn就很少写了,但是我觉得这里可以作为我记录心得的一个地方,还是挺好的. 因为产品规划 ...

  6. 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

    本文来自:石杉的架构笔记 目录 一.前奏 二.HDFS的NameNode架构原理 一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN ...

  7. 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构

    点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 (1)TB级数据放在一台机器上:难啊! (2 ...

  8. 小白都能看懂的关于Mixins机制的理解

    前言 ​ 在学习Flutter源码的时候,看到各种复杂的mixin和on,为了便于后续Flutter的学习,这里有必要一起来份详细Dart 的 Mixin机制. 什么是mixins 首先看看官方文档的 ...

  9. 黑苹果电池电量补丁_小白都能看懂的DSDT电量显示补丁教程

    [TOC] 简介 知识储备DSDT 正则匹配(不懂就依葫芦画瓢) 背景 由于普通PC的电池设备并不兼容与苹果的SMbus设备,所以,对于黑苹果,只能够通过ACPI来获取电池状态.为了解决电量显示我可是 ...

  10. BUI框架中 使用Jpush极光推送,单推跟群推,尽量让小白都能看懂

    1.先贴一下自己使用的Cordvoa版本 2.再贴一下自己使用的极光推送版本 3.极光推送GitHub地址:点击打开 4.小白常见问题 Crodova打包,编译出错. Crodova打包后,提示JPu ...

最新文章

  1. os x 10.9.5怎么升级_鸿蒙手机系统终于定档!华为官宣发布时间,首批升级名单已出炉...
  2. 【机器学习基础】数学推导+纯Python实现机器学习算法17:XGBoost
  3. 【转】SSL/TLS/WTLS协议原理
  4. 反射应用二:利用反射加配置文件实现多数据库的访问
  5. 算法设计之0-1背包问题
  6. 把图标变成圆形的html_3组24个CSS3分享图标,可旋转和悬停
  7. 【半原创】将js和css文件装入localStorage加速程序执行
  8. python学习——matplotlib库——折线图
  9. I Think I Can!
  10. 变速恒频风电机组的优缺点_风电消防安全解决方案解析
  11. hdu 吉哥系列故事——完美队形 (最长公共子序列)
  12. html脚注制作,幸福西饼:静态页面制作项目总结
  13. 发了一篇小红书,阅读量破了20W...
  14. 使用QQ邮箱无法收到Github上发送的验证码?
  15. listview winfrom 表头_c# listview添加表头
  16. 英语前后缀大全 - 快速理解英语单词
  17. 升级Mac内置的vim
  18. bootstrap之入门教程
  19. SQL 查询排名,相同数据排名相同
  20. 即将到来的风暴 ― SDN/NFV探讨

热门文章

  1. 基于ROS的运动识别
  2. Android Studio配置文件修改
  3. 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划
  4. 不到30行JS代码实现的Excel表格
  5. java.io.Serializab接口
  6. Android学习笔记(一)——Android应用的界面编程
  7. 【哈佛商评】好编辑成就内容营销
  8. cocos2d-iphone 3.X 进度条的实现
  9. linux修改yum本地源的方法
  10. ie6-7中会出现图片下有空隙