亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)的矩陣轉(zhuǎn)置與矩陣相乘運(yùn)算示例

 更新時(shí)間:2019年03月26日 11:19:11   作者:Johnny丶me  
這篇文章主要介紹了Python實(shí)現(xiàn)的矩陣轉(zhuǎn)置與矩陣相乘運(yùn)算,結(jié)合實(shí)例形式分析了Python針對矩陣進(jìn)行轉(zhuǎn)置與相乘運(yùn)算的相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)的矩陣轉(zhuǎn)置與矩陣相乘運(yùn)算。分享給大家供大家參考,具體如下:

矩陣轉(zhuǎn)置

方法一 :使用常規(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中

矩陣相乘

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

說明: A矩陣與B矩陣的乘法運(yùn)算,最終得到新的矩陣X , 思路

  • 首先判斷是否可以相乘:前提條件是A的列與B的行要相同
  • 我們可以畫圖理解:假如A是3行5列,B是5行2列,相乘結(jié)果是3行2列
  • 將B轉(zhuǎn)置后是2行5列,我們稱之為BT, 這樣 A 和 BT 都是5列了
  • 則A的每行中的第 i 個(gè)元素 * BT每行中的第 i 個(gè)元素,相加構(gòu)成新矩陣X的新行,循環(huán)A行,共3行,則新矩陣X就會(huì)逐步添加新行,待循環(huán)完畢,得到新矩陣X

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python中實(shí)現(xiàn)兩個(gè)字典(dict)合并的方法

    Python中實(shí)現(xiàn)兩個(gè)字典(dict)合并的方法

    這篇文章主要介紹了Python中實(shí)現(xiàn)兩個(gè)字典(dict)合并的方法,是Python程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • Python HTTP庫 requests 的簡單使用詳情

    Python HTTP庫 requests 的簡單使用詳情

    requests是Python的一個(gè)HTTP客戶端庫,基于urllib標(biāo)準(zhǔn)庫,在urllib標(biāo)準(zhǔn)庫的基礎(chǔ)上做了高度封裝,因此更加簡潔好用,下面就由小編來給大家詳細(xì)介紹吧,需要的朋友可以參考下
    2021-09-09
  • Zabbix實(shí)現(xiàn)微信報(bào)警功能

    Zabbix實(shí)現(xiàn)微信報(bào)警功能

    這篇文章主要介紹了Zabbix實(shí)現(xiàn)微信報(bào)警的相關(guān)資料,本文圖文并茂介紹的非常詳細(xì),需要的朋友可以參考下
    2016-10-10
  • pycharm debug功能實(shí)現(xiàn)跳到循環(huán)末尾的方法

    pycharm debug功能實(shí)現(xiàn)跳到循環(huán)末尾的方法

    今天小編就為大家分享一篇pycharm debug功能實(shí)現(xiàn)跳到循環(huán)末尾的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python字符類型的一些方法小結(jié)

    python字符類型的一些方法小結(jié)

    下面小編就為大家?guī)硪黄猵ython字符類型的一些方法小結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧
    2016-05-05
  • python的列表生成式,生成器和generator對象你了解嗎

    python的列表生成式,生成器和generator對象你了解嗎

    這篇文章主要為大家詳細(xì)介紹了python的列表生成式,生成器和generator對象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Django實(shí)現(xiàn)支付寶付款和微信支付的示例代碼

    Django實(shí)現(xiàn)支付寶付款和微信支付的示例代碼

    支付寶支付和微信支付是當(dāng)今互聯(lián)網(wǎng)產(chǎn)品常用的功能,這篇文章主要介紹了Django實(shí)現(xiàn)支付寶付款和微信支付的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Django的分頁器實(shí)例(paginator)

    Django的分頁器實(shí)例(paginator)

    下面小編就為大家分享一篇Django的分頁器實(shí)例(paginator),具有很好的參考價(jià)值,希望對大家有所幫助
    2017-12-12
  • Python入門_淺談字符串的分片與索引、字符串的方法

    Python入門_淺談字符串的分片與索引、字符串的方法

    下面小編就為大家?guī)硪黄狿ython入門_淺談字符串的分片與索引、字符串的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • 通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    這篇文章主要介紹了通過selenium抓取某東的TT購買記錄并分析趨勢過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評論