# NumPy 初學者教學
## 目標
- 了解 NumPy 是什麼
- 學習如何使用 NumPy 進行簡單的數值運算
- 熟悉 NumPy 的基本操作(陣列創建、索引、運算)
---
## 1. NumPy 是什麼?
NumPy 是 Python 的一個數值運算library,專門用來處理大型多維陣列與矩陣的運算。它提供了強大的數學函數,能快速有效地進行數學計算。
### 安裝 NumPy
在開始之前,請確認你已經安裝了 NumPy。你可以在終端機或命令提示符中執行以下指令來安裝:
```bash
pip install numpy
```
---
## 2. 創建 NumPy 陣列
### 2.1 使用 `np.array()` 創建陣列
```python
import numpy as np
# 創建一個一維陣列
arr = np.array([1, 2, 3, 4, 5])
print(arr)
```
### 2.2 使用 `np.zeros()` 和 `np.ones()` 創建陣列
```python
# 創建一個全是 0 的 2x3 陣列
zeros_array = np.zeros((2, 3))
print(zeros_array)
# 創建一個全是 1 的 3x2 陣列
ones_array = np.ones((3, 2))
print(ones_array)
```
### 2.3 使用 `np.arange()` 和 `np.linspace()` 創建數列
```python
# 創建一個從 0 到 9 的數列
range_array = np.arange(10)
print(range_array)
# 創建一個從 0 到 1 之間的 5 個等距數值
linspace_array = np.linspace(0, 1, 5)
print(linspace_array)
```
---
## 3. 基本操作
### 3.1 陣列的形狀
你可以檢查 NumPy 陣列的形狀,並進行轉換。
```python
# 檢查陣列的形狀
print(arr.shape)
# 轉換陣列形狀
reshaped_array = arr.reshape(5, 1)
print(reshaped_array)
```
### 3.2 陣列的索引與切片
```python
# 獲取陣列中的特定元素
print(arr[2]) # 獲取第三個元素
# 獲取陣列中的一個範圍
print(arr[1:4]) # 獲取第二到第四個元素
```
### 3.3 基本運算
```python
# 陣列加法
arr2 = np.array([5, 4, 3, 2, 1])
result = arr + arr2
print(result)
# 陣列的平方
squared = arr ** 2
print(squared)
# 陣列的總和
total_sum = np.sum(arr)
print(total_sum)
```
---
## 4. 練習題目
### 練習題 1: 創建與操作陣列
1. 創建一個從 1 到 9 的數列,並將其形狀變為 3x3 的矩陣。
2. 使用索引獲取矩陣的第二行。
3. 將矩陣中所有的元素平方。
```python
# 提示程式碼
matrix = np.arange(1, 10).reshape(3, 3)
print("矩陣:")
print(matrix)
# 第二行
second_row = matrix[1, :]
print("第二行:", second_row)
# 元素平方
squared_matrix = matrix ** 2
print("平方後的矩陣:")
print(squared_matrix)
```
### 練習題 2: 陣列的基本運算
1. 創建兩個長度為 5 的陣列 `a` 和 `b`,分別包含隨機的整數。
2. 將這兩個陣列相加,並輸出結果。
3. 計算兩個陣列的乘積。
```python
# 提示程式碼
a = np.random.randint(1, 10, 5)
b = np.random.randint(1, 10, 5)
print("陣列 a:", a)
print("陣列 b:", b)
# 陣列相加
sum_ab = a + b
print("相加結果:", sum_ab)
# 陣列乘積
product_ab = a * b
print("乘積結果:", product_ab)
```
---
## 5. 結語
在這個教學中,你學會了如何使用 NumPy 創建並操作陣列,還進行了一些基本的運算。接下來,你可以探索更多 NumPy 的高級功能,像是矩陣運算與統計分析。
---