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

2020-04-14  本文已影响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轴的坐标值变化,其他轴的坐标值均一样的,被分为一组。

上一篇下一篇

猜你喜欢

热点阅读