numpy中的transpose函式使用方法

2022-06-25 05:12:13 字數 2508 閱讀 7850

二維矩陣的transpose函式:

不曉得該怎麼起頭,直接上乾貨。

transpose()簡單來說,就相當於數學中的轉置,在矩陣中,轉置就是把行與列相互調換位置;

例如:隨機生成乙個三行五列的二維矩陣:

arr = np.arange(15).reshape((3, 5))   

arr

array([[ 0, 1, 2, 3, 4],

[ 5, 6, 7, 8, 9],

[10, 11, 12, 13, 14]])

>> arr.t

array([[ 0,  5, 10],

[ 1,  6, 11],

[ 2,  7, 12],  

[ 3,  8, 13], 

[ 4,  9, 14]])

reshape的作用是隨機生成乙個矩陣的行與列;

元素第0個位置表示0;第乙個位置表示1,以此類推;總共是15個數;

然後arr.t相當於矩陣的轉置;

transpose(x,y)函式和矩陣的轉置是乙個意思,相當於行為x軸,列為y軸,x軸和y軸調換了位置;

x軸用0表示,y軸用1表示;

例如:如果transport(1,0)表示行與列調換了位置;

>> arr.transpose(1, 0)    

array([[ 0, 5, 10],

[ 1, 6, 11],

[ 2, 7, 12],

[ 3, 8, 13],

[ 4, 9, 14]])

三維張量的transpose函式:

前面我們講了二維矩陣的transpose函式其實是和矩陣的轉置是乙個概念;現在我們來講一下三維張量;

三維張量顧名思義,它有三個維度;相當於有x軸,y軸,z軸;三個軸之間的相互轉換;

同樣,x軸用0表示,y軸用1表示;z軸用2來表示;

arr = np.arange(24).reshape((2, 3, 4))  

arr

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]],

[[12, 13, 14, 15],

[16, 17, 18, 19],

[20, 21, 22, 23]]])

相當於把三維張量也做軸變換,具體操作如下圖:

每個軸之間變換和表示也各不相同:

transpose(1,0,2)表示x軸與y軸發生變換之後;

import

numpy as np

arr = np.arange(24).reshape((2,3,4))

vc = arr.transpose(1,0,2)

print

(vc)

>>>結果

[[[ 0 1 2 3]

[12 13 14 15]]

[[ 4 5 6 7]

[16 17 18 19]]

[[ 8 9 10 11]

[20 21 22 23]]]

transport(0,2,1):表示y軸與z軸發生軸變換之後;

import

numpy as np

arr = np.arange(24).reshape((2,3,4))

vc = arr.transpose(0,2,1)

print

(vc)

[[[ 0 4 8]

[ 1 5 9]

[ 2 6 10]

[ 3 7 11]]

[[12 16 20]

[13 17 21]

[14 18 22]

[15 19 23]]]

transport(2,1,0):表示x軸與z軸發生軸變換之後;

import

numpy as np

arr = np.arange(24).reshape((2,3,4))

vc = arr.transpose(2,1,0)

print

(vc)

[[[ 0 12]

[ 4 16]

[ 8 20]]

[[ 1 13]

[ 5 17]

[ 9 21]]

[[ 2 14]

[ 6 18]

[10 22]]

[[ 3 15]

[ 7 19]

[11 23]]]

好了,到這裡,差不多transport函式理解的也比較全面了,快去寫寫**吧!

Numpy中的函式

生成用函式 效果np.array x 將輸入資料轉化為乙個ndarray np.array x,dtype 將輸入資料轉化為乙個型別為type的ndarray np.asarray array 將輸入資料轉化為乙個新的 copy ndarray np.ones n 生成乙個n長度的一維全一ndarr...

Numpy中的transpose函式

transpose 的操作物件是矩陣。我們用乙個例子來說明這個函式 0 1 2 3 4 5 6 7 這是乙個shape為 2,2,2 的矩陣,現在對它進行transpose操作。首先我們對矩陣的維度進行編號,上述矩陣有三個維度,則編號分別為0,1,2,而transpose函式的引數輸入就是基於這個編...

numpy中的陣列切片

如同python中自帶的切片,numpy中也有類似的切片功能。接下來對兩個功能進行一下簡單的對比。首先測試python自帶的功能,在shell視窗中測試如下 in 1 data range 10 in 2 data out 2 0,1,2,3,4,5,6,7,8,9 in 3 data1 data ...