Skip to content

NumPy 簡介

NumPy 是 Python 的數學函式庫,主要用來處理數字和陣列(類似數學中的矩陣)。它比 Python 內建的 list 更快,適合做數據運算。

以下是 NumPy 使用方法的重點摘要:

1. 安裝與導入

如果還沒安裝 NumPy,可以先執行:

pip install numpy

然後在 Python 程式中引入:

import numpy as np

2. 創建 NumPy 陣列

(1) 轉換 Python listnumpy 陣列

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)

📌 差異:NumPy 陣列比 list 更快,且能進行向量計算。

(2) 創建特殊陣列

  • 全零陣列
zeros = np.zeros(5)
print(zeros)  # [0. 0. 0. 0. 0.]
  • 全一陣列
ones = np.ones(5)
print(ones)  # [1. 1. 1. 1. 1.]
  • 範圍陣列 (arange)
arr = np.arange(1, 10, 2)
print(arr)  # [1 3 5 7 9]
  • 隨機陣列
random_arr = np.random.rand(3)
print(random_arr)  # 例如 [0.5 0.8 0.3]

3. NumPy 陣列的運算

NumPy 允許我們直接對整個陣列進行計算,而不需要用 for 迴圈:

arr = np.array([1, 2, 3, 4])

print(arr + 2)  # [3 4 5 6]
print(arr * 3)  # [3 6 9 12]
print(arr ** 2) # [1 4 9 16]

📌 重點:NumPy 陣列的計算是「整體運算」,不用寫迴圈。

4. 陣列形狀 (Shape)

NumPy 不只有一維陣列,還能建立二維陣列(類似數學中的矩陣):

arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d)

結果:

[[1 2 3]
 [4 5 6]]
  • 取得形狀:
print(arr2d.shape)  # (2, 3) 表示 2 列 3 欄
  • 變更形狀:
new_arr = arr2d.reshape(3, 2)
print(new_arr)

結果:

[[1 2]
 [3 4]
 [5 6]]

5. 簡單統計運算

NumPy 提供許多數學函式:

arr = np.array([1, 2, 3, 4, 5])

print(np.mean(arr))  # 平均值: 3.0
print(np.sum(arr))   # 總和: 15
print(np.max(arr))   # 最大值: 5
print(np.min(arr))   # 最小值: 1
print(np.std(arr))   # 標準差: 1.414

6. 簡單索引與切片

list 類似,可以取出特定數值:

arr = np.array([10, 20, 30, 40, 50])

print(arr[1])   # 取第 2 個元素: 20
print(arr[:3])  # 取前 3 個元素: [10 20 30]
print(arr[-2:]) # 取最後 2 個元素: [40 50]

7. NumPy 與 matplotlib 搭配

可以用 NumPy 生成數據,並用 matplotlib 畫圖:

import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)  # 產生 100 個 0~10 的等距點
y = np.sin(x)  # 計算對應的正弦值

plt.plot(x, y)
plt.show()

📌 這樣就能畫出一條漂亮的正弦波!