---
# System prepended metadata

title: 地圖視覺化_認識套件
tags: [教案]

---

#  地圖視覺化_認識套件
______________
## numpy
用於科學計算
- Sample code：
1. 創陣列
```python=
import numpy as np

# 創建一個一維陣列
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 創建一個二維陣列
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)

```
2. 數學運算
```python=
import numpy as np

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

# 求和
print(np.sum(arr))

# 求平均值
print(np.mean(arr))

# 求最大值
print(np.max(arr))

```
3. 數組操作
```python=
import numpy as np

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

# 獲取第三個元素(陣列由0開始算，因此輸入arr[2])
print(arr[2])

# 切片
print(arr[1:4])
```
____________
## pyshp
pyshp 是 Python 的一個用於讀取和寫入 Shapefile 文件的庫。Shapefile 是一種常見的地理信息系統（GIS）數據格式，用於存儲地理空間數據，如點、線、多邊形等地理要素。
- Sample code：
1. 讀取shp檔
```python=
import shapefile

# 打開 Shapefile 文件
sf = shapefile.Reader("path_to_shapefile.shp")

# 獲取 Shapefile 文件中的所有記錄
shapes = sf.shapes()
records = sf.records()

# 獲取字段名稱
fields = sf.fields
field_names = [field[0] for field in fields[1:]]
```
2. 獲取要素幾何訊息
```python=
# 獲取第一個要素的幾何信息
shape = shapes[0]

# 獲取第一個要素的屬性信息
record = records[0]

```
3. 創建shp
```python=
import shapefile

# 創建一個 Shapefile 寫入器
w = shapefile.Writer("new_shapefile")

# 添加字段
w.field("Name", "C")
w.field("Value", "N")

# 添加要素
w.point(1, 1)
w.record("Point 1", 123)

# 保存 Shapefile 文件
w.save()


```
_____________________
## geopandas
Geopandas 是建立在 Pandas 基礎上的套件，主要用於地理空間數據處理，可用於讀取Shapefile
* Sample code：
```python=
import geopandas as gpd
import matplotlib.pyplot as plt

# 讀取 Shapefile 文件(shp)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# 繪製地圖
world.plot()

# 顯示地圖
plt.show()
```
:::info
#### 腦力激盪
1. 本次教學中，下載geopandas套件的指令為何？
