numpy中的轴与转置
2018-06-21 本文已影响0人
跳蚤窝
在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 同样是返回一个视图,而不是一个拷贝。