<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Python 程序:將兩個矩陣相乘 > 原文: [https://www.programiz.com/python-programming/examples/multiply-matrix](https://www.programiz.com/python-programming/examples/multiply-matrix) #### 在此示例中,我們將學習使用兩種不同的方法來乘法矩陣:嵌套循環和嵌套列表推導式 要理解此示例,您應該了解以下 [Python 編程](/python-programming "Python tutorial")主題: * [Python `for`循環](/python-programming/for-loop) * [Python 列表](/python-programming/list) * [Python 矩陣和 NumPy 數組](/python-programming/matrix) * * * 在 Python 中,我們可以將矩陣實現為嵌套列表(列表內的列表)。 我們可以將每個元素視為矩陣的一行。 例如,`X = [[1, 2], [4, 5], [3, 6]]`將代表`3x2`矩陣。 第一行可以選擇為`X[0]`。 并且,可以將第一行第一列中的元素選擇為`X[0][0]`。 僅當`X`中的列數等于`Y`行數時,才定義兩個矩陣`X`和`Y`的相乘。 如果`X`是`n x m`矩陣,而`Y`是`m x l`矩陣,則定義`XY`并具有尺寸`n x l`(但`YX`未定義)。 以下是在 Python 中實現矩陣乘法的兩種方法。 ### 源代碼:使用嵌套循環的矩陣乘法 ```py # Program to multiply two matrices using nested loops # 3x3 matrix X = [[12,7,3], [4 ,5,6], [7 ,8,9]] # 3x4 matrix Y = [[5,8,1,2], [6,7,3,0], [4,5,9,1]] # result is 3x4 result = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # iterate through rows of X for i in range(len(X)): # iterate through columns of Y for j in range(len(Y[0])): # iterate through rows of Y for k in range(len(Y)): result[i][j] += X[i][k] * Y[k][j] for r in result: print(r) ``` **輸出** ```py [114, 160, 60, 27] [74, 97, 73, 14] [119, 157, 112, 23] ``` 在此程序中,我們使用了嵌套的`for`循環來遍歷每一行和每一列。 我們累加結果中的乘積之和。 這種技術很簡單,但是隨著我們增加矩陣的階數,計算量很大。 對于較大的矩陣操作,我們建議使用優化的軟件包,例如 [NumPy](http://www.numpy.org/ "NumPy Official Website") ,它比上述代碼快幾倍(大約 1000 倍)。 ### 源代碼:使用嵌套列表推導式的矩陣乘法 ```py # Program to multiply two matrices using list comprehension # 3x3 matrix X = [[12,7,3], [4 ,5,6], [7 ,8,9]] # 3x4 matrix Y = [[5,8,1,2], [6,7,3,0], [4,5,9,1]] # result is 3x4 result = [[sum(a*b for a,b in zip(X_row,Y_col)) for Y_col in zip(*Y)] for X_row in X] for r in result: print(r) ``` 該程序的輸出與上述相同。 要理解以上代碼,我們必須首先了解使用*運算符的[內置函數`zip()`](http://docs.python.org/3/library/functions.html?highlight=zip#zip "built-in function zip") 和[解包參數列表](http://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists "unpacking argument list")的方法。 我們使用嵌套列表推導式來遍歷矩陣中的每個元素。 該代碼起初看起來很復雜且不可讀。 但是一旦掌握了列表推導式的技巧,您可能就不會回到嵌套循環了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看