python實現矩陣轉置的幾種方法

2021-10-09 08:39:23 字數 3047 閱讀 3855

import numpy as np

a = np.mat([[

1,2,

3],[

4,5,

6],[

7,8,

9]])

print

(a.t)

print

(a.swapaxes(0,

1))# 均輸出

# [[1 4 7]

# [2 5 8]

# [3 6 9]]

import numpy as np

a =[[1

,2,3

],[4

,5,6

],[7

,8,9

]]print

(np.transpose(a)

)# 輸出

# [[1 4 7]

# [2 5 8]

# [3 6 9]]

zip(a)相當於打包,打包為元組的列表

>>> a = [1,2,3]

>>> b = [4,5,6]

>>> c = [4,5,6,7,8]

>>> a = zip(a,b) # 打包為元組的列表

[(1, 4), (2, 5), (3, 6)]

>>> zip(a,c) # 元素個數與最短的列表一致

[(1, 4), (2, 5), (3, 6)]

>>> zip(*a) # 與 zip 相反,*a 可理解為解壓,返回二維矩陣式

[(1, 2, 3), (4, 5, 6)]

a =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]print

(*a)

#[1, 2, 3] [4, 5, 6] [7, 8, 9]

#zip()返回的是乙個物件。如需展示列表,需手動 list() 轉換。

#print(zip(*a)) #

print

(list

(zip

(*a)))

# 輸出

# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

這裡python中星號(*)的作用是將變數中可迭代物件的元素拆解出來。

a =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]#print(len(a)) #矩陣行數

#print(len(a[0])) #矩陣列數

b =[

[a[j]

[i]for j in

range

(len

(a))

]for i in

range

(len

(a[0])

)]print

(b)# 輸出

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

b = [[a[j][i] for j in range(len(a))] for i in range(len(a[0]))]
這句寫的清楚一點就是:

a =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]#print(len(a)) #矩陣行數

#print(len(a[0])) #矩陣列數

for i in

range

(len

(a[0])

):#len(a[0])矩陣列數

for j in

range

(len

(a))

:#len(a)矩陣行數

#轉置就是a[i][j]和a[j][i]互換

a[j]

[i], a[i]

[j]= a[i]

[j], a[j]

[i]print

(a)# 輸出

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

因為轉置矩陣的對稱性,可以更省時間的寫成:

a =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]#print(len(a)) #矩陣行數

#print(len(a[0])) #矩陣列數

for i in

range

(len

(a[0])

):#len(a[0])矩陣列數

for j in

range

(i,len

(a))

:#len(a)矩陣行數

#轉置就是a[i][j]和a[j][i]互換

a[j]

[i], a[i]

[j]= a[i]

[j], a[j]

[i]print

(a)# 輸出

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

a =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]b=

for i in

range

(len

(a[0])

):#len(a[0])矩陣列數

temp =

for j in

range

(len

(a))

:#len(a)矩陣行數

[i])

print

(b)# 輸出

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

python實現轉置矩陣 用Python轉置矩陣?

轉置矩陣意味著我們將其列變為行。讓我們通過乙個例子來理解它,如果轉置後看起來像什麼。假設您有原始矩陣,例如 x 1,2 3,4 5,6 在上面的矩陣 x 中,我們有兩列,分別為1 3 5和2 4 6。因此,當我們在矩陣 x 上方轉置時,列變為行。因此,上面矩陣的轉置版本看起來像 x1 1,3,5 2...

用python實現矩陣轉置

前幾天群裡有同學提出了乙個問題 手頭現在有個列表,列表裡面兩個元素,比如 1,2 之後不斷的新增新的列表,往原來相應位置新增。例如新增 3,4 使原列表擴充為 1,3 2,4 再新增 5,6 擴充為 1,3,5 2,4,6 等等。其實不動腦筋的話,用個二重迴圈很容易寫出來 def trans m a...

Python 矩陣轉置

在讀時,會用到這麼的一段 image vector len np.prod image size 總元素大小,3 55 47 img image.open path arr img np.asarray img,dtype float64 arr img arr img.transpose 2,0,...