numpy数组切片与转置的可视化
1 数据的准备
import numpy as np
a = np.arange(16).reshape(2,2,4)

可以将元素的索引看成是x,y,z轴的坐标,这里我们写成0,1,2轴,则上述数据可以可视化为

2 切片
沿着0轴切片:

沿着1轴切片:

沿着2轴切片:

3 转置(np.transpose)
3.1 官方文档说明:

可以看到,np.transpose()可以重新排列数组的维度,体现在图上就是:对数据进行旋转和镜像对称操作,这等价于数据不动坐标轴重新洗牌(详见参考链接)。
3.2 常见的transpose操作(以3维数组为例):
- np.transpose(A):不传递坐标轴参数,默认即为完全逆序(2,1,0),也就是线性代数中的转置。
 ![]() 
 绿色操作1:围绕1轴将整个坐标轴按图示方向旋转90度
 绿色操作2:将0轴镜像对称到12轴平面上方
 这样就完成了0维和2维这两个维度的互换。
- np.transpose(A, (1,2,0)):将数据由channel first,转换成channel last;反之则- np.transpose(A, (2,0,1))
 ![]() 
 绿色操作1:围绕1轴将整个坐标轴按图示方向旋转90度
 绿色操作2:将12轴平面围绕0轴按图示方向水平旋转90度
 这样就完成了相应维度的转换。
 注意:简单的- np.reshape并不能完成上述那样维度的重新排列。
 ![]() 
 可以看到- np.reshape()秉着“多退少补”的策略进行reshape,元素的顺序不会改变。
 
                    
                     
                    
                 
                    
                



 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号