2019-03-26 13:10:43 1052瀏覽
今天扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于Python實現(xiàn)矩陣轉(zhuǎn)置與矩陣相乘運(yùn)算示例詳解,并結(jié)合實例形式分析了Python針對矩陣進(jìn)行轉(zhuǎn)置與相乘運(yùn)算的相關(guān)實現(xiàn)技巧與操作注意事項。
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
def transpose(M): # 直接使用zip解包成轉(zhuǎn)置后的元組迭代器,再強(qiáng)轉(zhuǎn)成list存入最終的list中 return [list(row) for row in zip(*M)]
my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3])) print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]
def matrixMultiply(A, B): # 獲取A的行數(shù)和列數(shù) A_row, A_col = shape(A) # 獲取B的行數(shù)和列數(shù) B_row, B_col = shape(B) # 不能運(yùn)算情況的判斷 if(A_col != B_row): raise ValueError # 最終的矩陣 result = [] # zip 解包后是轉(zhuǎn)置后的元組,強(qiáng)轉(zhuǎn)成list, 存入result中 BT = [list(row) for row in zip(*B)] # 開始做乘積運(yùn)算 for A_index in range(A_row): # 用于記錄新矩陣的每行元素 rowItem = [] for B_index in range(len(BT)): # num 用于累加 num = 0 for Br in range(len(BT[B_index])): num += A[A_index][Br] * BT[B_index][Br] # 累加完成后,將數(shù)據(jù)存入新矩陣的行中 rowItem.append(num) result.append(rowItem) return result
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開發(fā)免費公開課】
查看更多關(guān)于"Python開發(fā)資訊"的相關(guān)文章>