文章目录
AI数学启蒙:100天Python实践计划 - 第11天 简单统计
今天我们将学习简单统计的基本概念,包括平均数、最大值、最小值,并从数学角度、AI人工智能角度和Python编程角度分别进行讲解和实践。
一、数学角度:简单统计的概念
1. 平均数(Mean)
- 定义:所有数据的总和除以数据的个数。
- 公式:
平均数 = x 1 + x 2 + ⋯ + x n n \text{平均数} = \frac{x_1 + x_2 + \dots + x_n}{n} 平均数=nx1+x2+⋯+xn
其中, x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,…,xn 是数据, n n n 是数据的个数。 - 数学意义:反映数据的集中趋势,是数据分布的中心值。
2. 最大值(Maximum)
- 定义:数据集中的最大数值。
- 数学意义:反映数据的极端上限值。
3. 最小值(Minimum)
- 定义:数据集中的最小数值。
- 数学意义:反映数据的极端下限值。
二、AI人工智能角度:简单统计的作用
在AI和机器学习中,简单统计是数据预处理和数据分析的基础:
- 数据探索(Exploratory Data Analysis, EDA):
- 通过计算平均数、最大值、最小值,可以快速了解数据的分布和范围。
- 例如:检查数据是否有异常值(如最大值远大于其他值)。
- 特征工程:
- 统计特征(如平均值)可以用于特征缩放(如标准化、归一化)。
- 模型评估:
- 在回归任务中,平均数可以用于计算误差(如均方误差MSE)。
- 数据清洗:
- 通过最大值和最小值可以检测异常值(如超出合理范围的数据)。
三、Python角度:实现简单统计
1. 手动实现
我们可以用Python的基本运算实现平均数、最大值、最小值:
# 示例数据
data = [10, 20, 30, 40, 50]
# 平均数
mean = sum(data) / len(data)
print("平均数:", mean)
# 最大值
max_value = max(data)
print("最大值:", max_value)
# 最小值
min_value = min(data)
print("最小值:", min_value)
输出:
平均数: 30.0
最大值: 50
最小值: 10
2. 使用NumPy(推荐)
NumPy是Python中用于科学计算的库,提供了高效的统计函数:
import numpy as np
# 示例数据
data = np.array([10, 20, 30, 40, 50])
# 平均数
mean = np.mean(data)
print("平均数:", mean)
# 最大值
max_value = np.max(data)
print("最大值:", max_value)
# 最小值
min_value = np.min(data)
print("最小值:", min_value)
输出:
平均数: 30.0
最大值: 50
最小值: 10
为什么推荐NumPy?
- NumPy的计算效率更高(底层用C实现)。
- 支持向量化操作(可以处理大规模数据)。
- 提供更多统计函数(如标准差、方差等)。
3. 使用Pandas(适用于表格数据)
如果数据是表格形式(如CSV文件),可以用Pandas:
import pandas as pd
# 示例数据
data = {'values': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 平均数
mean = df['values'].mean()
print("平均数:", mean)
# 最大值
max_value = df['values'].max()
print("最大值:", max_value)
# 最小值
min_value = df['values'].min()
print("最小值:", min_value)
输出:
平均数: 30.0
最大值: 50
最小值: 10
四、实践任务
任务1:手动计算统计量
给定数据 [15, 25, 35, 45, 55]
,手动计算平均数、最大值、最小值。
任务2:用Python实现
用Python(不使用NumPy和Pandas)计算以下数据的统计量:
data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
任务3:用NumPy实现
用NumPy计算以下数据的统计量:
data = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])
任务4:用Pandas实现
用Pandas计算以下数据的统计量(假设数据存储在CSV文件中):
- 创建一个CSV文件
data.csv
,内容如下:values 10 20 30 40 50
- 用Pandas读取并计算统计量。
五、总结
角度 | 平均数 | 最大值 | 最小值 |
---|---|---|---|
数学 | 数据总和 / 数据个数 | 数据集中的最大值 | 数据集中的最小值 |
AI | 数据探索、特征工程、模型评估 | 检测异常值、特征缩放 | 检测异常值、特征缩放 |
Python | sum(data) / len(data) | max(data) | min(data) |
或 np.mean(data) | 或 np.max(data) | 或 np.min(data) | |
或 df['col'].mean() | 或 df['col'].max() | 或 df['col'].min() |
关键点:
- 简单统计是数据分析的基础。
- NumPy和Pandas可以高效实现统计计算。
- 在AI中,统计量用于数据探索和模型评估。
六、扩展思考
- 如果数据中有异常值(如
[1, 2, 3, 100]
),平均数会受到什么影响?- 平均数会被拉高(因为100远大于其他值)。
- 可以考虑用中位数(Median)代替平均数(中位数是排序后中间的值)。
- 如何用Python计算中位数?
np.median(data)
或df['col'].median()
。
下一课预告:第12天 - 中位数、众数、数据分布。