九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
python實(shí)現(xiàn)矩陣轉(zhuǎn)置的幾種方法

文章目錄

  • (1)方法一、使用numpy轉(zhuǎn)置
  • (2)方法二、使用zip()函數(shù)
  • (3)方法三、使用python列表表達(dá)式【不占用額外空間,“原地修改”】
  • (4)方法四、新建列表B,使用雙重循環(huán)添加元素

(1)方法一、使用numpy轉(zhuǎn)置

import numpy as npA = 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 npA = [[1,2,3],[4,5,6],[7,8,9]]print(np.transpose(A))# 輸出# [[1 4 7]#  [2 5 8]#  [3 6 9]]

(2)方法二、使用zip()函數(shù)

  • zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的對(duì)象,這樣做的好處是節(jié)約了不少的內(nèi)存。
  • 可以使用 list() 轉(zhuǎn)換來輸出列表?!緕ip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內(nèi)存,zip() 返回的是一個(gè)對(duì)象。如需展示列表,需手動(dòng) list() 轉(zhuǎn)換。】
  • 如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長度與最短的對(duì)象相同,利用*號(hào)操作符,可以將元組解壓為列表。

zip(A)相當(dāng)于打包,打包為元組的列表

>>> 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)              # 元素個(gè)數(shù)與最短的列表一致[(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()返回的是一個(gè)對(duì)象。如需展示列表,需手動(dòng) list() 轉(zhuǎn)換。#print(zip(*A)) #<zip object at 0x000001CD7733A2C8>print(list(zip(*A)))# 輸出# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

這里python中星號(hào)(*)的作用是將變量中可迭代對(duì)象的元素拆解出來。

(3)方法三、使用python列表表達(dá)式【不占用額外空間,“原地修改”】

A = [[1,2,3],[4,5,6],[7,8,9]]#print(len(A)) #矩陣行數(shù)#print(len(A[0])) #矩陣列數(shù)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]))]

這句寫的清楚一點(diǎn)就是:

A = [[1,2,3],[4,5,6],[7,8,9]]#print(len(A)) #矩陣行數(shù)#print(len(A[0])) #矩陣列數(shù)for i in range(len(A[0])):#len(A[0])矩陣列數(shù)    for j in range(len(A)):#len(A)矩陣行數(shù)        #轉(zhuǎn)置就是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]]

因?yàn)檗D(zhuǎn)置矩陣的對(duì)稱性,可以更省時(shí)間的寫成:

A = [[1,2,3],[4,5,6],[7,8,9]]#print(len(A)) #矩陣行數(shù)#print(len(A[0])) #矩陣列數(shù)for i in range(len(A[0])):#len(A[0])矩陣列數(shù)    for j in range(i,len(A)):#len(A)矩陣行數(shù)        #轉(zhuǎn)置就是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]]

(4)方法四、新建列表B,使用雙重循環(huán)添加元素

A = [[1,2,3],[4,5,6],[7,8,9]]B=[]for i in range(len(A[0])):#len(A[0])矩陣列數(shù)    temp = []    for j in range(len(A)):#len(A)矩陣行數(shù)        temp.append(A[j][i])    B.append(temp)print(B)# 輸出# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
盤點(diǎn)Python常用的6個(gè)內(nèi)置函數(shù)!
Python五個(gè)隱藏的特性,你可能從未聽說過
Python中的Numpy入門教程
numpy庫:常用基本
技術(shù)圖文:Matlab VS. Numpy 矩陣基本運(yùn)算
第 109 天:NumPy 矩陣
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服