numpy中的轴与转置

在numpy的ndarray中(n维d的array),n维分别对应n个轴,每个轴拥有一个编号,分别为0,1,2.....,n。
如:

import numpy as np
arr = np.arange(16).reshape(2,2,2,2) # 4

其中arr为4维数组,拥有4个轴,轴编号为0、1、2、3

transpose,

tanspose 接受一个轴编号的元组作为参数,返回一个数组的视图(注意不是数组的拷贝)。

arrt1 = arr.transpose((1,0,2,3)).copy()  #交换0、1
arrt2 = arr.transpose((1,0,3,2)).copy()  #分别交换0、1,2、3

上面的代码把arr的第0、1轴进行了互换,tanspose()返回了一个视图,我们通过copy()(可以和python中的列表的copy()进行类比)来获得一份拷贝,以便比较。

swapaxes

上面arrt1的代码可以如下代码等效:

arrs = arr.swapaxes(0,1).copy

swapaxes直观多了,直接把第0、1轴进行了互换,但是对于arrt2的操作就无能为力了。当然,swapaxes 同样是返回一个视图,而不是一个拷贝。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容