日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ndarray的轉置(numpy.transpose()與A.T命令對比分析)_python

作者:Codefmeister ? 更新時間: 2023-04-06 編程語言

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())

結果如下:

Example1

多維默認情況下:

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)

結果如下:

Example2

指定維度情況:

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)

結果如下:

Example3

從截圖中可以看出,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)

總結

原文鏈接:https://blog.csdn.net/weixin_43977640/article/details/109909305

欄目分類
最近更新