numpy 转置_Python中Numpy.transpose()

Numpy的transpose()函数与swapaxes()函数类似,当transpose()不传任何参数时,作用与T属性类似,arr.T即可完成数组arr的转置;swapaxes()函数接受一对轴编号作为参数,而transpose()接受的是含所有轴编号的元组,例如三维数组的np.transpose(1,0,3),即表示将0轴和1轴置换。

理解了transpose(),就相当于理解了swapaxes().

开始对于多维数组转置挺蒙的,CSDN上有关于转置的图像化介绍,即画个含0、1、2三个轴(类似于XYZ轴,在numpy中用数字表示),然后解释换轴是怎么进行的,很容易理解。但对于四维以上数组来说,就无法通过这种方式理解了。以下是个人的理解,以三维数组为例:

原始数组是一个2X3X4的三维数组,绿红蓝表示三个轴0、1、2,标黄部分为存储的值。即索引号000存储的值为0,代表的是0轴为0、1轴为0、2轴为0这三个索引中存储的值为0,其他同理。

np.transpose(1,0,2)表示将0轴和1轴置换。在图中即表示红色这一列与绿色这一列互换,其他位置不变,因置换导致索引顺序变化,原来的1轴变成新的0轴,原来的0轴变成新的1轴,重新按新的(0-1-2)轴排序,即可得到最终结果。可输入以下代码验证结果:

import numpy as np

print(np.arange(24).reshape(2,3,4)

print(np.arange(24).reshape(2,3,4).transpose(1,0,2))

看看输出结果是不是如图中的一致。

同样,使用np.transpose(2,1,0)验证结果是不是如图中所示。

理解了三维数组,推广到四维甚至n维,就不难理解了。

本文链接:https://my.lmcjl.com/post/4695.html

展开阅读全文

4 评论

留下您的评论.