NumPy 基礎 (二) - 陣列運算

Bgods發表於2019-10-28

一維陣列運算

  • 生成一維示例陣列
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = np.arange(1, 6)
>>> a, b
(array([1, 2, 3, 4, 5]), array([1, 2, 3, 4, 5]))
  • 一維陣列加法運算
>>> a + b 
array([ 2,  4,  6,  8, 10])
  • 一維陣列減法運算
>>> a - b
array([0, 0, 0, 0, 0])
  • 一維陣列乘法運算
>>> a * b
array([ 1,  4,  9, 16, 25])
  • 一維陣列除法運算
>>> a / b
array([1., 1., 1., 1., 1.])

二維陣列(矩陣)運算

  • 生成二維示例陣列(可以看作矩陣)
>>> A = np.array([[1, 2],[3, 4]])
>>> B = np.array([[5, 6],[7, 8]])
>>> A, B
(array([[1, 2],
        [3, 4]]), array([[5, 6],
        [7, 8]]))
  • 矩陣加法運算
>>> A + B
array([[ 6,  8],
       [10, 12]])
  • 矩陣減法運算
>>> A - B
array([[-4, -4],
       [-4, -4]])
  • 矩陣元素間乘法運算
>>> A * B
array([[ 5, 12],
       [21, 32]])
  • 矩陣乘法運算
>>> np.dot(A, B)
array([[19, 22],
       [43, 50]])

注意:np.dot(A, B)與上題A * B的區別,如果不瞭解矩陣乘法運算,點選百度百科學習。

# 如果使用 np.mat 將二維陣列準確定義為矩陣,就可以直接使用 * 完成矩陣乘法計算
>>> np.mat(A) * np.mat(B)
matrix([[19, 22],
        [43, 50]])
  • 數乘矩陣
>>> 2 * A
array([[2, 4],
       [6, 8]])
  • 矩陣的轉置
>>> A.T
array([[1, 3],
       [2, 4]])
  • 矩陣求逆
>>> np.linalg.inv(A)
array([[-2. ,  1. ],
       [ 1.5, -0.5]])

關於逆矩陣,請檢視百科

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章