Skip to content

NumPy簡介

NumPy 是 Numerical Python 的簡稱,是 Python 用來作科學運算的基礎套件。

為什麼需要NumPy?

簡單來說,是因為原生的Python資料結構沒有支援向量運算

NumPy提供一個很容易做向量運算的新的資料結構ndarray (N-Dimensional Array),以及可以處理ndarray資料的通用函式ufunc (Universal Functions)。

什麼是向量運算?

在工程、科學及金融等領域,需要用到很多向量運算。

假設有兩個向量 (Vectors) A 跟 B,

\(A = \left( \begin{array}{c} a_1 \\ a_2 \\ a_3 \end{array} \right)\)

\(B = \left( \begin{array}{c} b_1 \\ b_2 \\ b_3 \end{array} \right)\)

向量加法運算如下:

\(A + B = \left( \begin{array}{c} a_1 + b_1 \\ a_2 + b_2 \\ a_3 + b_3 \end{array} \right)\)

向量的純量積算法如下:

\(c \cdot A = \left( \begin{array}{c} ca_1 \\ ca_2 \\ ca_3 \end{array} \right)\)

list沒辦法直接做向量運算!

A = [1, 2, 3]
B = [4, 5, 6]

print(A + B) # [1, 2, 3, 4, 5, 6]
print(A * 2) # [1, 2, 3, 1, 2, 3]

ndarray提供簡易的方式執行向量運算!

import numpy as np

A1 = np.array(A)
B1 = np.array(B)

print(A1 + B1) # [5 7 9]
print(A1 * 2)  # [2 4 6]