新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:怎么用python寫一個矩陣轉(zhuǎn)置

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、象山網(wǎng)站維護、網(wǎng)站推廣。
方法一 :使用常規(guī)的思路
def transpose(M): # 初始化轉(zhuǎn)置后的矩陣 result = [] # 獲取轉(zhuǎn)置前的行和列 row, col = shape(M) # 先對列進行循環(huán) for i in range(col): # 外層循環(huán)的容器 item = [] # 在列循環(huán)的內(nèi)部進行行的循環(huán) for index in range(row): item.append(M[index][i]) result.append(item) return result
思路:矩陣的轉(zhuǎn)置就是從行變成列,列變成行。
先定義一個最終存放矩陣的容器;
先對列進行循環(huán)i,并定義一個臨時數(shù)組用于存放數(shù)據(jù),在每次列的循環(huán)內(nèi)部,再次對行進行循環(huán)j,取第M[j][i]個元素存入一個臨時數(shù)組中;
在每次列循環(huán)完畢,將臨時數(shù)組存入最終數(shù)組中;
當列循環(huán)完畢, 最終數(shù)組就是矩陣的轉(zhuǎn)置。
方法二:使用zip解壓包
def transpose(M): # 直接使用zip解壓包成轉(zhuǎn)置后的元組迭代器,再強轉(zhuǎn)成list存入最終的list中 return [list(row) for row in zip(*M)]
思路:
zip解壓包后,返回一個將多個可迭代對象組合成一個元組序列的迭代器,正如:
my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3]))
print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]在每次循環(huán)中將元組強轉(zhuǎn)成list并存入總list中。
python學習網(wǎng),免費的在線學習python平臺,歡迎關(guān)注!
名稱欄目:創(chuàng)新互聯(lián)Python教程:怎么用python寫一個矩陣轉(zhuǎn)置
鏈接URL:http://www.5511xx.com/article/cciehjd.html


咨詢
建站咨詢
