Numpy下的三维数组转置(二)

经过上一篇已经对三维数组的转置有所了解,那么没看明白的,可以从下面三维立方体的角度思考一下。

原数组的索引顺序是x轴,y轴,z轴,即0轴,1轴,2轴。

那么当将(0,1,2)改为(1,0,2)时,即索引顺序变为y轴,x轴,z轴。以此类推。例子如下。

1、numpy.transpose(arr, axes)用于对换数组的维度。参数axes是整数列表对应维度。

(1)axes=[1,0,2]表示:(x,y,z)2*3*4 ——> (y,x,z)3*2*4

(2)axes=[2,1,0]表示:(x,y,z)2*3*4 ——> (z,y,x)4*3*2

(a的转置求法一)

(a的转置求法二)

2、numpy.swapaxes(arr, axis1, axis2)用于交换数组的两个轴。

(1)0轴和1轴交换(=np.swapaxes(a,1,0)):(x,y,z)2*3*4 ——> (y,x,z)3*2*4

(2)0轴和2轴交换(=np.swapaxes(a,2,0)):(x,y,z)2*3*4 ——> (z,y,x)4*3*2

(a的转置求法三)

3、numpy.rollaxis(arr, axis, start)向后滚动特定的轴到一个特定位置(默认滚动至0轴)。

(1)1轴滚动到0轴 :(x,y,z) 2*3*4——> (y,x,z)3*2*4

(2)2轴滚动到0轴 :(x,y,z)2*3*4 ——> (z,x,y)4*2*3

(3)为什么0轴滚动到1轴、1轴滚动到2轴,等同于未滚动?为什么0轴滚动到2轴结果如此?此处懂了的小伙伴麻烦给我留言解释一下,谢谢。

 

你可能感兴趣的:(Python之路)