NumPy - 矩陣加法



什麼是矩陣加法?

矩陣加法是指將兩個相同大小的矩陣相加的操作。在矩陣加法中,一個矩陣中的每個元素都與其在另一個矩陣中對應的元素相加。

要進行矩陣加法,兩個矩陣必須具有相同的維度,即相同的行數和列數。

如果您有兩個相同大小的矩陣,例如AB,則它們的和C定義為

C = A + B

其中,

Cij = Aij + Bij

換句話說,矩陣C中第ith行和第jth列的元素是矩陣AB中對應元素的和。

矩陣加法的例子

考慮以下兩個矩陣

A = [[1, 2], 
     [3, 4]]

B = [[5, 6], 
     [7, 8]]

C = A + B將計算為

C = [[1+5, 2+6], 
     [3+7, 4+8]] 
  = [[6, 8], 
     [10, 12]]

因此,將矩陣AB相加的結果為矩陣C

C = [[6, 8], 
     [10, 12]]

NumPy 中的矩陣加法

在 NumPy 中,矩陣加法可以使用+運算子或numpy.add()函式完成。NumPy 陣列提供按元素執行矩陣運算(包括加法)的能力,這對於執行快速的數學計算非常有用。

執行矩陣加法時,需要注意以下幾點:

  • 矩陣維度:要使矩陣加法有效,矩陣必須具有相同的維度(相同的行數和列數)。
  • 按元素運算:NumPy 自動處理按元素運算,使用+運算子或numpy.add()函式新增矩陣非常容易。
  • 靈活的陣列:NumPy 陣列很靈活,只要維度相容,就可以處理不同大小的矩陣。

在 NumPy 中建立矩陣

在執行矩陣加法之前,讓我們首先在 NumPy 中建立矩陣。NumPy 中的矩陣本質上是二維陣列,我們可以使用np.array()函式建立它們,如下所示:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# Print the matrices
print("Matrix A:")
print(A)
print("\nMatrix B:")
print(B)

獲得的輸出如下:

Matrix A:
[[1 2]
 [3 4]]

Matrix B:
[[5 6]
 [7 8]]

使用+運算子進行矩陣加法

在 NumPy 中新增兩個矩陣最簡單的方法是使用+運算子。此運算子將自動執行兩個矩陣的按元素加法。

例子

在下面的示例中,我們使用“+”運算子新增兩個矩陣“A”和“B”:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Adding two matrices using the + operator
C = A + B

# Print the result
print("Matrix C (A + B):")
print(C)

獲得的輸出如下:

Matrix C (A + B):
[[ 6  8]
 [10 12]]

使用numpy.add()函式

或者,您可以使用numpy.add()函式執行矩陣加法,其工作方式與+運算子相同。此函式將兩個矩陣(或陣列)作為輸入,並返回它們的和。

例子

在此示例中,我們使用“numpy.add()”函式新增兩個矩陣“A”和“B”:

import numpy as np

# Creating two 2x2 matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Adding two matrices using numpy.add() function
C = np.add(A, B)

# Print the result
print("Matrix C (A + B using numpy.add()):")
print(C)

我們獲得的輸出如下:

Matrix C (A + B using numpy.add()):
[[ 6  8]
 [10 12]]

矩陣加法中的廣播機制

雖然矩陣加法需要相同形狀的矩陣,但 NumPy 具有稱為廣播機制的強大功能,允許對不同形狀的陣列進行按元素運算。

廣播機制會自動調整陣列的形狀,以便在它們之間進行運算。但是,對於矩陣加法而言,兩個矩陣必須具有相同的形狀。

例子

為了讓您瞭解廣播機制的工作原理(儘管它不直接適用於矩陣加法),以下是如何將標量新增到矩陣中的示例:

import numpy as np

# Create a 2x2 matrix
A = np.array([[1, 2], [3, 4]])

# Add a scalar to the matrix using broadcasting
B = A + 10

# Print the result
print("Matrix A + 10:")
print(B)

產生的結果如下:

Matrix A + 10:
[[11 12]
 [13 14]]

矩陣加法中的錯誤處理

如果您嘗試新增形狀不同的兩個矩陣(即維度不同),NumPy 將引發錯誤。執行矩陣加法時,這是一個需要注意的重要點。

例子

以下是在 NumPy 中執行矩陣加法時維度不匹配的示例:

import numpy as np

# Create two matrices with different shapes
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6, 7]])
C = A + B
print(C)

執行上述程式碼後,我們將獲得以下輸出:

Traceback (most recent call last):
  File "/home/cg/root/6734345c5507a/main.py", line 6, in <module>
C = A + B
ValueError: operands could not be broadcast together with shapes (2,2) (1,3) 

矩陣加法的應用

  • 影像處理:矩陣將影像表示為畫素值。矩陣加法用於透過新增亮度或調整畫素值來操作影像。
  • 資料分析:在資料科學中,矩陣表示資料集。像加法這樣的矩陣運算有助於組合資料集或修改它們。
  • 線性系統:矩陣加法用於透過新增表示不同係數的矩陣來求解線性方程組。
  • 計算機圖形學:矩陣運算是 3D 變換的核心,其中矩陣加法有助於進行平移等變換。
廣告