python對矩陣進(jìn)行轉(zhuǎn)置的2種處理方法
方法一 :使用常規(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)置就是從行變成列, 列變成行
- 先定義一個最終存放矩陣的容器
- 先對列進(jìn)行循環(huán)i,并定義一個臨時數(shù)組用于存放數(shù)據(jù),在每次列的循環(huán)內(nèi)部,再次對行進(jìn)行循環(huán)j,取第M[j][i]個元素存入一個臨時數(shù)組中
- 在每次列循環(huán)完畢,將臨時數(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 解包后,返回一個將多個可迭代對象組合成一個元組序列的迭代器,正如:
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中
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用sleep間隔進(jìn)行python反爬蟲的實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于用sleep間隔進(jìn)行python反爬蟲的實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-11-11
python獲取linux和windows系統(tǒng)指定接口的IP地址的步驟及代碼
這篇文章主要介紹了python獲取linux和windows系統(tǒng)指定接口的IP地址,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05
Python 進(jìn)程之間共享數(shù)據(jù)(全局變量)的方法
今天小編就為大家分享一篇Python 進(jìn)程之間共享數(shù)據(jù)(全局變量)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
詳解selenium + chromedriver 被反爬的解決方法
這篇文章主要介紹了詳解selenium + chromedriver 被反爬的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
python tkinter中的錨點(diǎn)(anchor)問題及處理
這篇文章主要介紹了python tkinter中的錨點(diǎn)(anchor)問題及處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
opencv+python識別七段數(shù)碼顯示器的數(shù)字(數(shù)字識別)
本文主要介紹了opencv+python識別七段數(shù)碼顯示器的數(shù)字(數(shù)字識別),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

