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)
。
相關文章
- SVN命令詳解【轉】
- vi命令詳解(轉)
- 【轉】linux-命令top詳解Linux
- PHP對redis操作詳解[轉]PHPRedis
- xargs 命令詳解,xargs 與管道的區別
- Linux關機與重啟的命令詳解Linux
- Linux 常用的壓縮與解壓縮命令詳解Linux
- oracle partition by group by,詳解partition by和group by對比Oracle
- 詳解Java鎖的升級與對比(1)——鎖的分類與細節(結合部分原始碼)Java原始碼
- XXL-Job與Elastic-Job詳細對比AST
- FFmpeg命令影片音訊轉碼引數詳解音訊
- MySQL中使用or、in與union all在查詢命令下的效率對比MySql
- Solon詳解(七)- Solon Ioc 的註解對比Spring及JSR330SpringJS
- Linux的scp命令詳解Linux
- linux的zip命令詳解Linux
- FTP 命令的使用詳解FTP
- 詳解CentOS的free命令CentOS
- synchronized 與 Lock 的對比synchronized
- 詳細解讀:不同RAID級別的優缺點對比AI
- 說說你對裝置畫素比的理解
- 關於SSL裝置的詳解
- Dockerfile 命令詳解Docker
- NPM命令詳解NPM
- echo命令詳解
- Linuxtcpdump命令詳解LinuxTCP
- w命令詳解
- getsebool命令詳解
- tcpdump命令詳解TCP
- GCC命令詳解GC
- `find` 命令詳解
- Linux at命令詳解Linux
- netstat命令詳解
- tcp/ip協議和opc協議對比詳解TCP協議
- Python==與is對比Python
- MyISAM與InnoDB兩者的區別、詳細總結、效能對比
- Linux常用命令之檔案壓縮與解壓縮命令詳解Linux
- Java的jstack命令使用詳解JavaJS
- find 命令的引數詳解