美文网首页
对于矩阵操作中axis的理解,以及axis=-1的解释

对于矩阵操作中axis的理解,以及axis=-1的解释

作者: 京漂的小程序媛儿 | 来源:发表于2020-04-14 15:46 被阅读0次

    一、二维理解axis

    axis二维 坐标

    二维数据拥有两个轴:第0轴(axis=0)沿着行的垂直往下,第1轴(axis=1或axis=-1)沿着列的方向水平延伸。

    也许简单的来记就是axis=0代表跨行(down),而axis=1代表跨列(across)

    二、高维理解axis

    这里解释一下三维,更高维也就都能理解了

    设axis=i,则沿着第i个下标变化的方向进行操作!

    embeddings是一个shape=[3,4,5]的矩阵

    3维矩阵

    对矩阵分别按轴(0,1,-1)取最大值所在下标

    按轴取最大值所在下标

    结果如下

    结果

    看懂为什么是这个结果吗?现在从头开始解释一下

    首先把embedding的坐标标出来

    坐标

    以axis=0为例,则沿着第0个下标(最左边的下标)变化的方向进行操作,也就说其他除了第0轴之外,第1轴,第2轴的坐标必须一样才能一并操作。

    坐标按axis=0分组

    axis=0,就是沿着第0轴变化(第0轴坐标取值是0,1,2),其他轴坐标一样的分为一组。比如,a000,a100,a200为一组(因为他们三其他轴坐标取值一样都是00);a001,a101,a201是一组,a024,a124,a224 是一组。那这么算的话,共分为4*5组。所以按照axis=0进行操作,得到的矩阵大小为[4,5]。

    坐标按axis=1分组

    axis=1,就是沿着第1轴变化(第1轴坐标取值是0,1,2,3),其他轴坐标一样的分为一组。比如,a000,a010,a020,a030为一组;a103,a113,a123,a133 是一组。那这么算的话,共分为3*5组。所以按照axis=1进行操作,得到的矩阵大小为[3,5]。

    坐标按axis=2分组

    axis=-1即axis=2,就是沿着第2轴变化(第2轴坐标取值是0,1,2,3,4),其他轴坐标一样的分为一组。比如,a000,a001,a002,a003,a004为一组;a120,a121,a122,a123,a124 是一组。那这么算的话,共分为3*4组。所以按照axis=-1进行操作,得到的矩阵大小为[3,4]。

    所以核心原则就是:

    1、先分组再操作。

    2、分组时,axis=i轴的坐标值变化,其他轴的坐标值均一样的,被分为一组。

    相关文章

      网友评论

          本文标题:对于矩阵操作中axis的理解,以及axis=-1的解释

          本文链接:https://www.haomeiwen.com/subject/vyxtvhtx.html