從基礎到進階掌握 Python np.array|多維陣列與資料分析完整指南

1. 前言

Python 是在資料分析、機器學習與科學運算領域中非常受歡迎的程式語言。其中的 numpy(讀作「南派」)函式庫,是提升數值運算效率的重要工具。本文將深入介紹 Python 中的 np.array,從基礎到進階應用,並說明如何有效處理與分析數值資料。

官方頁面

2. 什麼是 numpy

numpy 是一個數值運算函式庫,具備多維陣列(ndarray)、矩陣運算與統計分析功能,是資料分析的重要基礎。搭配其他 Python 函式庫使用時,可以簡化複雜的資料處理流程,並大幅提升執行效率。

如何安裝 numpy

安裝 numpy 非常簡單,只需執行以下指令:

pip install numpy

為什麼選擇 numpy

numpy 具備高速且高效率的資料處理能力,是進行科學運算與資料科學工作不可或缺的工具。如需進一步了解,請參考 官方文件

Why NumPy? Powerful n-dimensional arrays. Numerical computin…

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. np.array 的基礎

Python 中的 np.arraynumpy 的基本資料結構,具備高效處理數值資料的功能。以下是建立一維陣列的範例:

import numpy as np
array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d)

小提示:指定 np.array 的資料型態有助於提升記憶體使用效率。可以使用 dtype 參數指定整數型(如 int32)或浮點型。

4. 建立多維陣列

np.array 也支援建立多維陣列。例如,以下程式碼建立了一個二維陣列:

array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(array_2d)

常見問題
Q: 如何建立三維或更高維度的陣列?
A: 只要傳入更深層的巢狀列表給 np.array 即可。

5. 陣列操作

np.array 可以透過索引與切片來取得或操作特定元素。以下是基本的索引範例:

array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(array_2d[1, 2])  # 輸出:6

使用切片功能,可以輕鬆提取特定的行或列。

6. 改變陣列的形狀

在資料分析中經常需要改變陣列的形狀。可以使用 reshape 方法來有效地重新排列陣列:

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

小提示:除了 reshape,也可以使用 resize 方法,但它會直接修改原本的陣列,使用時請特別留意。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

7. 陣列的運算

利用 numpy 的運算功能,可以輕鬆進行陣列之間的數學運算。以下範例展示了兩個陣列的對應元素相加:

array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
print(array1 + array2)  # 輸出:[5 7 9]

常見問題
Q: 陣列形狀不同時也可以做運算嗎?
A: 使用 numpy 的廣播(broadcasting)功能,即使形狀不同也能進行對應的運算。

8. 使用統計函式

在資料分析中,計算平均值、最大值、最小值與變異數等統計量是非常重要的。以下是計算陣列平均值的範例:

array = np.array([1, 2, 3, 4, 5])
print(array.mean())  # 輸出:3.0

9. 實作範例:應用於資料分析

在此範例中,我們將使用模擬的銷售資料來分析成長率,並觀察每月的銷售變化。

import numpy as np
import matplotlib.pyplot as plt

sales_data = np.array([120, 150, 170, 200, 220, 180, 190, 210, 230, 250, 240, 260])

# 每月銷售成長率
growth_rate = (sales_data[1:] - sales_data[:-1]) / sales_data[:-1] * 100
print("每月成長率:", growth_rate)

# 繪製銷售資料圖表
plt.plot(range(1, 13), sales_data, marker='o')
plt.title("每月銷售趨勢")
plt.xlabel("月份")
plt.ylabel("銷售額(千元)")
plt.grid(True)
plt.show()

小提示:透過資料視覺化,可以直觀掌握成長高峰與趨勢,有助於進行商業分析。

10. 總結

本文介紹了 Python 中 np.array 的基礎用法與資料分析的實際應用。重點整理如下:

  1. 基本用法:建立 np.array 並指定資料型態的方法。
  2. 多維陣列:如何建立與操作二維、三維陣列。
  3. 變更形狀:使用 reshapeflatten 改變陣列結構。
  4. 運算與統計:進行元素運算與計算統計值。
  5. 實作範例:透過銷售資料計算成長率與視覺化分析。

這些知識是進行資料分析與機器學習專案的基礎,歡迎靈活應用。如果你想進一步深入了解,建議參考 numpy 的官方文件與相關主題。