創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)順城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)用python怎么寫一個(gè)矩陣轉(zhuǎn)置,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
方法一 :使用常規(guī)的思路
def transpose(M): # 初始化轉(zhuǎn)置后的矩陣 result = [] # 獲取轉(zhuǎn)置前的行和列 row, col = shape(M) # 先對列進(jìn)行循環(huán) for i in range(col): # 外層循環(huán)的容器 item = [] # 在列循環(huán)的內(nèi)部進(jìn)行行的循環(huán) for index in range(row): item.append(M[index][i]) result.append(item) return result
思路:矩陣的轉(zhuǎn)置就是從行變成列,列變成行。
先定義一個(gè)最終存放矩陣的容器;
先對列進(jìn)行循環(huán)i,并定義一個(gè)臨時(shí)數(shù)組用于存放數(shù)據(jù),在每次列的循環(huán)內(nèi)部,再次對行進(jìn)行循環(huán)j,取第M[j][i]個(gè)元素存入一個(gè)臨時(shí)數(shù)組中;
在每次列循環(huán)完畢,將臨時(shí)數(shù)組存入最終數(shù)組中;
當(dāng)列循環(huán)完畢, 最終數(shù)組就是矩陣的轉(zhuǎn)置。
方法二:使用zip解壓包
def transpose(M): # 直接使用zip解壓包成轉(zhuǎn)置后的元組迭代器,再強(qiáng)轉(zhuǎn)成list存入最終的list中 return [list(row) for row in zip(*M)]
思路:
zip解壓包后,返回一個(gè)將多個(gè)可迭代對象組合成一個(gè)元組序列的迭代器,正如:
my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3])) print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]
在每次循環(huán)中將元組強(qiáng)轉(zhuǎn)成list并存入總list中。
上述就是小編為大家分享的用python怎么寫一個(gè)矩陣轉(zhuǎn)置了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。