在數據分析和數值計算中,NumPy是Python中最核心的工具之一。它提供了高效的多維數組對象,以及大量用於數組操作和統計分析的函數。今天我們就來聚焦Numpy中三個最常用的統計函數:mean(平均值)、sum(求和)和max(最大值),幫助你快速上手數據統計分析。
一、快速導入Numpy並創建數組¶
首先,我們需要導入NumPy庫,並創建一些示例數組來演示函數用法。通常我們用np作爲NumPy的別名:
import numpy as np
接下來,創建簡單的數組:
- 一維數組:[1, 2, 3, 4, 5]
- 二維數組(2行3列):[[1, 2, 3], [4, 5, 6]]
# 一維數組示例
arr_1d = np.array([1, 2, 3, 4, 5])
# 二維數組示例
arr_2d = np.array([[1, 2, 3],
[4, 5, 6]])
二、mean函數:計算算術平均值¶
作用:mean函數用於計算數組中所有元素的算術平均值。
基本用法¶
- 對一維數組,直接計算整體平均值;
- 對多維數組,可通過
axis參數指定計算方向(行或列)。
關鍵參數axis¶
axis=0:按列計算(垂直方向,即每列元素的平均值);axis=1:按行計算(水平方向,即每行元素的平均值);- 若不指定
axis,則計算整個數組所有元素的平均值。
示例¶
# 1. 一維數組平均值
print("一維數組:", arr_1d)
print("整體平均值:", np.mean(arr_1d)) # 結果:3.0
# 2. 二維數組平均值
print("\n二維數組:\n", arr_2d)
print("按列平均值(axis=0):", np.mean(arr_2d, axis=0)) # [2.5, 3.5, 4.5]
print("按行平均值(axis=1):", np.mean(arr_2d, axis=1)) # [2.0, 5.0]
三、sum函數:計算元素總和¶
作用:sum函數用於計算數組中所有元素的總和。
基本用法¶
與mean類似,通過axis參數指定按行或按列求和。
關鍵參數axis¶
axis=0:每一列元素的和;axis=1:每一行元素的和。
示例¶
# 1. 一維數組求和
print("一維數組:", arr_1d)
print("總和:", np.sum(arr_1d)) # 結果:15
# 2. 二維數組求和
print("\n二維數組:\n", arr_2d)
print("按列求和(axis=0):", np.sum(arr_2d, axis=0)) # [5, 7, 9]
print("按行求和(axis=1):", np.sum(arr_2d, axis=1)) # [6, 15]
四、max函數:查找最大值¶
作用:max函數用於找出數組中元素的最大值。
基本用法¶
與前兩個函數一致,通過axis參數指定按行或按列查找最大值。
關鍵參數axis¶
axis=0:每一列的最大值;axis=1:每一行的最大值。
示例¶
# 1. 一維數組最大值
print("一維數組:", arr_1d)
print("最大值:", np.max(arr_1d)) # 結果:5
# 2. 二維數組最大值
print("\n二維數組:\n", arr_2d)
print("按列最大值(axis=0):", np.max(arr_2d, axis=0)) # [4, 5, 6]
print("按行最大值(axis=1):", np.max(arr_2d, axis=1)) # [3, 6]
五、實戰示例:學生成績統計¶
假設我們有一個班級的成績數據(3名學生,3門課),用數組表示如下:
# 學生成績數組:每行代表一名學生,每列代表一門課
scores = np.array([
[85, 90, 78], # 學生1:語文85,數學90,英語78
[92, 88, 95], # 學生2:語文92,數學88,英語95
[76, 80, 82] # 學生3:語文76,數學80,英語82
])
現在我們用mean、sum、max分析成績:
# 1. 每門課平均分(列平均值)
print("每門課平均分(列平均):", np.mean(scores, axis=0))
# 結果:[84.333..., 86.0, 85.0]
# 2. 每個學生的總分(行總和)
print("每個學生總分(行和):", np.sum(scores, axis=1))
# 結果:[253, 275, 238]
# 3. 每個學生的最高分(行最大值)
print("每個學生最高分(行最大):", np.max(scores, axis=1))
# 結果:[90, 95, 82]
# 4. 每門課最高分(列最大值)
print("每門課最高分(列最大):", np.max(scores, axis=0))
# 結果:[92, 90, 95]
六、總結¶
Numpy的mean、sum、max函數是統計分析的基礎工具,核心是通過axis參數控制計算方向(行/列)。記住:
- axis=0:列方向(垂直方向,對應行索引變化);
- axis=1:行方向(水平方向,對應列索引變化)。
通過多練習不同維度的數組操作,你就能快速掌握這些函數的用法,爲後續更復雜的數據分析打下基礎!