在数据分析和数值计算中,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:行方向(水平方向,对应列索引变化)。
通过多练习不同维度的数组操作,你就能快速掌握这些函数的用法,为后续更复杂的数据分析打下基础!