在numpy的ndarray中(n維d的array),n維分別對(duì)應(yīng)n個(gè)軸蚣常,每個(gè)軸擁有一個(gè)編號(hào),分別為0,1,2.....,n痊银。
如:
import numpy as np
arr = np.arange(16).reshape(2,2,2,2) # 4
其中arr為4維數(shù)組抵蚊,擁有4個(gè)軸,軸編號(hào)為0曼验、1泌射、2、3
transpose,
tanspose 接受一個(gè)軸編號(hào)的元組作為參數(shù)鬓照,返回一個(gè)數(shù)組的視圖(注意不是數(shù)組的拷貝)熔酷。
arrt1 = arr.transpose((1,0,2,3)).copy() #交換0、1
arrt2 = arr.transpose((1,0,3,2)).copy() #分別交換0豺裆、1拒秘,2、3
上面的代碼把a(bǔ)rr的第0臭猜、1軸進(jìn)行了互換躺酒,tanspose()返回了一個(gè)視圖,我們通過(guò)copy()(可以和python中的列表的copy()進(jìn)行類比)來(lái)獲得一份拷貝蔑歌,以便比較羹应。
swapaxes
上面arrt1的代碼可以如下代碼等效:
arrs = arr.swapaxes(0,1).copy
swapaxes直觀多了,直接把第0次屠、1軸進(jìn)行了互換园匹,但是對(duì)于arrt2的操作就無(wú)能為力了。當(dāng)然劫灶,swapaxes 同樣是返回一個(gè)視圖裸违,而不是一個(gè)拷貝。