2025年4月21日 星期一

pd select to np 資料分類轉存

 如何依照 Pandas 欄位條件,將符合條件的資料轉換成 NumPy 陣列,並用範例清楚展示。


✅ 範例資料:建立一個 DataFrame

python
import pandas as pd # 建立測試 DataFrame data = { 'b0': [0.1, 0.5, 0.9, 1.2], 'b1': [2.1, 2.5, 2.9, 3.2], 'type': [0, 1, 0, 1] } df = pd.DataFrame(data) print(df)

輸出:

bash
b0 b1 type 0 0.1 2.1 0 1 0.5 2.5 1 2 0.9 2.9 0 3 1.2 3.2 1

🎯 目標:取出 type == 0 的資料,轉為 NumPy 陣列

🔸 方法一:條件篩選後使用 .to_numpy()

python
# 篩選 type == 0 的列,只取 b0 與 b1 欄 selected = df[df['type'] == 0][['b0', 'b1']].to_numpy() print(selected)

🔹 輸出結果(NumPy 陣列):

lua
[[0.1 2.1] [0.9 2.9]]

🔸 方法二:使用 values 也可以(舊寫法)

python
selected = df[df['type'] == 0][['b0', 'b1']].values

⚠️ 注意:values 是舊方法,官方建議使用 .to_numpy(),可保留型別資訊與兼容性。


✅ 常見延伸應用:

✅ 只取 b0 > 0.5 的所有欄位並轉為 NumPy:

python
arr = df[df['b0'] > 0.5].to_numpy()

✅ 取出 type == 1,並只要 b1 欄(轉為 1D 陣列):

python
b1_arr = df[df['type'] == 1]['b1'].to_numpy()

輸出:

scss
array([2.5, 3.2])

如你資料是 IMU、Sensor log、或 AI 特徵資料,要餵給 NumPy-based 模型或 Hailo SDK,就很常這樣操作。


沒有留言:

張貼留言