前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 Numpy和Pandas axis的理解

关于 Numpy和Pandas axis的理解

作者头像
嘉美伯爵
发布2021-01-18 11:07:04
7200
发布2021-01-18 11:07:04
举报
文章被收录于专栏:微服务架构日记

先知

  • 维度

在理解axis之前,我们应该理解维度的含义:通常的理解是:“点是0维、直线是1维、平面是2维、体是3维”。在机器学习中我们常常处理几十维的数据,对于机器学习常用的Numpy库,当我们赋予二维数组每一行一个值的时候,那么此时二维数组的列数就是多维空间的维度。每一行给的值通常是我们的样本值,它也是损失函数准确度的一个依据。

代码语言:javascript
复制
# 构造数组,该行列式给予样本值将变为4维空间
two = np.arange(9).reshape(3,3)
two
-------------
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
# 查看维度
two.ndim
-------------
2
  • axis

那么问题了,我们应该怎么理解Numpy和Pandas(axis概念全部继承于Numpy),当一个数组上升到二维我们需要考虑是对行操作还是对列操作,那么如果上升为3维数组呢,没错,还会多出来一个axis:2。 到这里你应该明白,axis其实就是对数组层数的操作,ndim是几,那么对应的axis就有几个,下面看一张图,或许你就会明白。

操作

  • 通俗理解(二维数组)

当axis=0的时候,即对第一层进行操作,此时Numpy只对第一层内的数组进行操作,即axis执行方向从上到下; 当axis=1的时候,即对第二层进行操作,此时Numpy只对第二层内的数组进行操作,即axis执行方向从左到右。

  • 再次理解

看下面的图,这里的理解是,当axis=0的时候,从上到下以列为整体;当axis=1的时候,从左往右以行为整体。

特殊

  • Dataframe

下面我们再次对其理解,看下图的红线部分axis=1,此时我们可以理解为当axis=1的时候是把列作为整体进行操作的,而当 axis=0也就是红线部分,我们把其看作是以行为整体操作的,numpy默认为行,因为这样保证数据的原始性。

  • drop

这个可以认为是特殊的,但记住一点当axis=0的时候是从上往下的,dorp指出了要删除iloc为1的行,那么此时便会从上往下进行删除,即以列为单位删除整行; 同理axis=1,从左往右推荐,当column='C'的满足条件,整列删除。

总结

说了这么多,你要记住的就是,axis=0的时候一定是从上往下的;axis=1的时候肯定是从左往右。

参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先知
  • 操作
  • 特殊
  • 总结
  • 参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档