在数据分析和数值计算中,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
])

现在我们用meansummax分析成绩:

# 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的meansummax函数是统计分析的基础工具,核心是通过axis参数控制计算方向(行/列)。记住:
- axis=0列方向(垂直方向,对应行索引变化);
- axis=1行方向(水平方向,对应列索引变化)。

通过多练习不同维度的数组操作,你就能快速掌握这些函数的用法,为后续更复杂的数据分析打下基础!

小夜