ndarray的轉置(numpy.transpose()與A.T命令對比詳解)
ndarray的轉置(transpose)
對於A是由np.ndarray
表示的情況:
可以直接使用命令A.T
。
也可以使用命令A.transpose()
。
A.T 與 A.transpose()對比
結論:
在預設情況下,兩者效果相同,但transpose()
可以指定交換的axis
維度。
對於一維陣列,兩者均不改變,返回原陣列。
對於二維陣列,預設進行標準的轉置操作。
對於多維陣列A
,A.shape
為(a,b,c,d,...,n)
,則轉置後的shape
為(n,...,d,c,b,a)
,即逆序。
對於.transpose()
,可以指定轉置後的維度。語法:A.transpose((axisOrder1,...,axisOrderN))
,其效果等同於np.transpose(A,(axisOrder1,...,axisOrderN))
,(axisOrder)
中是想要得到的索引下標順序。效果詳見例子。
Example:
二維預設情況下:
A = np.array([[1,2],[3,4]])
print(A)
print(A.T)
print(A.transpose())
結果如下:
多維預設情況下:
a = np.array([[[1,2,3,4],[4,5,6,7]],[[2,3,4,5],[5,6,7,8]],[[3,4,5,6],[4,5,6,7]]])
print(a.shape)
print(a.T.shape)
print(a.transpose().shape)
結果如下:
指定維度情況:
a = np.array([[[1,2,3,4],[4,5,6,7]],[[2,3,4,5],[5,6,7,8]],[[3,4,5,6],[4,5,6,7]]])
print(a.shape)
print(a.transpose(1,2,0).shape)
A = np.transpose(a,(1,2,0))
print(A.shape)
結果如下:
從截圖中可以看出,a.transpose(1,2,0)
與np.transpose(a,(1,2,0))
效果相同。程式碼段中給出的axes
是(1,2,0)
,這決定了transpose
後的陣列,其shape
在第一個維度即shape[0]
上是原來的shape[1]
,第二維shape[1]
是原來的shape[2]
,第三維shape[2]
是原來的shape[0]
。所以原shape
為(3,2,4)
。新的shape為(2,4,3)
。
相關文章
- SQL與MongoDB的詳細對比SQLMongoDB
- SVN命令詳解【轉】
- vi命令詳解(轉)
- tar命令詳解--轉
- TOP命令詳解(轉)
- FTP命令詳解(轉)FTP
- sar命令詳解(轉)
- FTP命令詳解 (轉)FTP
- 命令詳解:tee(轉)
- UNIX命令詳解(轉)
- Linux系統命令與Solaris系統命令的對比Linux
- CREATE TABLESPACE命令詳解(轉)
- rpm命令詳解(轉)
- passwd 命令使用詳解(轉)
- chattr 命令使用詳解(轉)
- mv命令使用詳解(轉)
- su命令使用詳解(轉)
- Linux的chattr與lsattr命令詳解Linux
- [轉]linux awk命令詳解Linux
- shell中set命令詳解(轉)
- (轉)Linux find命令詳解Linux
- BASH shell set命令詳解(轉)
- ls命令選項詳解(轉)
- 檔案管理命令詳解(轉)
- TAR命令引數詳解(轉)
- linux top命令詳解--轉Linux
- Linux命令詳解:efax(轉)Linux
- 乙太網交換機效能比較對照指標詳解(轉)指標
- find命令的exec選項用法詳解(轉)
- xargs 命令詳解,xargs 與管道的區別
- xargs命令詳解,xargs與管道的區別
- PHP對redis操作詳解[轉]PHPRedis
- Java中對HashMap的深度分析與比較(轉)JavaHashMap
- 【轉】linux-命令top詳解Linux
- 轉載-RMAN下CROSSCHECK命令詳解ROS
- unix 命令詳解 - 轉自網路
- linux awk命令詳解 --轉載Linux
- 系統管理命令中文詳解(轉)