1.axis
axis一直是个让人混淆的点,axis=k代表了沿着某轴,可是这个轴代表了什么意思?了解过上一节笔记之后,其实这块理解起来就比较简单了。
简单复习一下,对于一个高维的张量(a,b,c,d),我们可以从后向前看,首先是有个b*c的矩阵,然后有b个这样的矩阵,最后有a个这样的整体。
以(2,2,3,4)为例,画起来是这个样子
那么axis=0是什么意思?0轴实际上代表了最外面的整体,在上面这个图中,最大的整体是
那么以numpy中的sum举例,axis=0就是两个最大整体的对位相加
axis=1是什么呢?其实就是第二大整体的对位相加
2.transpose
transpose最常用的方面就是转置,比如将3*4矩阵转置为4*3矩阵,那么如果是高维的张量呢?比如(2,2,3,4)实际上transpose后就是将其形状倒置为(4,3,2,2),transpose还有一种用法只转换其中几行,方法是在函数中加入参数,例如transpose(test1,(0,2,1)),意思就是只将轴1与轴2的位置调换。
3.reshape
reshape的方法是将原张量变为新形状的张量,能够变换的前提是前后两个张量能够容纳的值的数量是一致的,否则就无法转换,转换的过程中,是尽可能先填满-1轴,然后依次向着最外面的整体填充。