《從零開始的資料科學筆記》Day#1: NumPy入門

更新 發佈閱讀 8 分鐘
raw-image

NumPy(Numerical Python)是 Python 資料科學的根基,一個為處理數值資料與高效陣列運算而生的工具。在這套件的世界裡,矩陣(array)不再只是數學符號,而是資料操作的核心主角,從最基本的數列建立、重塑,到進階的數學與邏輯運算,它都是你駕馭資料的第一把鑰匙。

這篇文章將會帶你:

  • 了解為什麼 NumPy 是資料科學家的必備工具;
  • 建立你的第一個陣列,操作它、切片它、變形它;
  • 搭配範例與圖示,拆解每一行看似陌生的語法。

為什麼要學NumPy?

NumPy是一個用於高效數值計算與陣列操作的 Python 函式庫。它提供了一個功能強大的 ndarray(n 維陣列)物件,支援向量化運算、廣播(broadcasting)、矩陣運算、統計計算、隨機數生成等功能。 並且許多更高階的資料科學套件如Pandas、TensorFlow、PyTorch等都會以NumPy為運算的基礎。

因此,熟悉NumPy的運算對於踏入資料科學這個領域是非常重要的一步!!!
🎯 目標:了解 NumPy 陣列的基本操作與語法

NumPy特色

✅ 1. 高效的數值運算

NumPy 使用 C 語言底層實作,比 Python 原生 list 操作更快數十倍。

操作Python ListNumPyfor 迴圈平方慢、需手動快、可向量化資料切片支援但有限完整、快速

✅ 2. 機器學習的基石

大多數機器學習函式庫(如 scikit-learn, TensorFlow, PyTorch):

  • 內部運算都是用 NumPy 陣列(或其變體)
  • 模型輸入與預測資料幾乎都以 NumPy 陣列表示

🎯 不會 NumPy,等於看不懂大多數機器學習模型的資料處理方式!

✅ 3. 資料前處理的核心工具

NumPy 是 Pandas 的基礎。Pandas 的 DataFrame 裡的數據,實際上是建立在 ndarray 之上。

如果你學會了 NumPy,會更理解:

  • Pandas 的 .iloc、.values
  • Tensor 的維度與轉換
  • 深度學習的矩陣操作(例如 dot, reshape, transpose)

✅ 4. 支援高維與大型數據

NumPy 可以輕鬆操作:

  • 2D(矩陣)
  • 3D(影像、影片)
  • nD(如:多變量時間序列、張量)

🎯它的運算資源使用效能也比純 Python 更優。

⚡NumPy 能做什麼?

raw-image

🔄 NumPy vs Python List:簡單比較

raw-image

🧭 小結:為什麼你「一定要」學 NumPy?

✅ 機器學習的底層格式

✅ 深入理解矩陣與向量操作

✅ 提升資料處理效率與可讀性

✅ 為學習 Pandas、Scikit-learn、TensorFlow 打下基礎

🎓 如果你未來要處理任何資料、建模、甚至要做影像分析或強化學習,NumPy 都是不可或缺的基礎工具。



🔢 初識NumPy

🎲1. 匯入 NumPy 並建立陣列

import numpy as np

a = np.array([1, 2, 3]) # 建立一維陣列
b = np.array([[1, 2], [3, 4]]) # 建立二維陣列

# 輸出
print(a) # [1 2 3]
print(b)
# [[1 2]
# [3 4]]

🎲2. 陣列形狀與維度

print(a.shape)  # (3,)
print(b.shape) # (2, 2)
print(b.ndim) # 2 維

說明

  • .shape:回傳每個維度的大小(很重要!!!)
  • .ndim:回傳陣列的維度數量

🎲3. 常用陣列建立方式

np.zeros((2, 3))      # 建立全為 0 的 2x3 陣列
np.ones((2, 2)) # 建立全為 1 的 2x2 陣列
np.eye(3) # 單位矩陣 (3x3)
np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1.]

# 輸出
print(np.zeros((2, 3)))
#[[0., 0., 0.],
# [0., 0., 0.]]

說明

  • np.zeros: 常用於建立初始陣列(很重要!!!)
  • np.ones: 常用於建立初始陣列
  • np.arange(start, stop, step, dtype)
    • start : 從某數開始,預設為0
    • stop : 到某數停止(不包含)
    • step : 間格多少
    • dtype : bool(布林值), int(整數), float(浮點數), complex(複數)
  • np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
    • start : 從某數開始
    • stop : 到某數停止
    • num : start到stop之間有多少數字
    • endpoint : True(包含stop); False(不包含stop),預設為True
    • restep : 若是True,則會在array的後面,加上間隔多少,預設為False
    • dtype : bool(布林值), int(整數), float(浮點數), complex(複數)

🎲4. 陣列索引與切片

x = np.array([10, 20, 30, 40]) # 建立一維陣列

# 輸出
print(x[1]) # 20
print(x[1:3]) # [20 30]

說明

  • 運用索引(index)和切片(slicing)可以從陣列中取出特定範圍的值(很重要!!!)
  • python的index從0開始

➕5. 基本運算

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 輸出
print(a + b) # [5 7 9]
print(a * b) # [ 4 10 18]
print(a ** 2) # [1 4 9]
print(a / 2) # [0.5, 1, 1.5]

說明

  • 陣列可以進行基本的加減乘除等運算
  • 亦可進行進階的矩陣運算

➗6. 基礎數學運算

a = np.arange(3) # 產生一個一維陣列: [0, 1, 2]
b = np.sqrt(a) # 對每個數值開根號
c = np.exp(a) # 以e為底,數值為指數
d = np.log(a) # 將數值取log
e = np.sin(a) # 將數值取sin
f = np.cos(a) # 將數值取cos

m = np.maximum(x, y) # 取出x, y中比大的數值
n = np.sign(x) # 判斷x的正負號,1.為正,-1.為負
p = np.floor(x) # 地板函數,為不大於數值的最大整數
q = np.ceil(x) # 天花板函數,為不小於數值的最小整數

說明

  • 數學運算很多函數可以用,在此列出常用的幾種







留言
avatar-img
留言分享你的想法!
avatar-img
Ethan的AI學習筆記
4會員
28內容數
我是一個不務正業的資料科學家,從零開始學習的路途上跌跌撞撞,跌過許多坑,也撞過許多牆... 當有人迷失方向時,希望這些筆記可以成為你的指南針。
你可能也想看
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
在資料分析過程中,透過衡量變數之間的線性或非線性關係,能有效探索數據集,篩選出重要特徵,並進行預測建模。本文介紹瞭如何理解數據、使用相關矩陣找出變數關聯性,以及利用互資訊評估變數之間的依賴程度,幫助資料科學家在建模過程中選擇適當的變數,提升模型效果。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
NumPy 是 Python 語言的一個擴充程式庫,支援高階大規模的多維陣列與矩陣運算的數學函式函式庫。 NumPy 2.0.0 是自 2006 年以來的第一個主要發行版本,此重要版本標誌著 NumPy 發展歷程中的一項重要里程碑,為使用者提供了豐富的增強功能和改進,並為未來的功能開發奠定了基礎。
Thumbnail
NumPy 是 Python 語言的一個擴充程式庫,支援高階大規模的多維陣列與矩陣運算的數學函式函式庫。 NumPy 2.0.0 是自 2006 年以來的第一個主要發行版本,此重要版本標誌著 NumPy 發展歷程中的一項重要里程碑,為使用者提供了豐富的增強功能和改進,並為未來的功能開發奠定了基礎。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News