phpcms女性网站模板关键词提取
一、统计基础:用 NumPy 处理数据
1. 核心统计函数
| 操作 | 函数 | 场景示例 |
|---|---|---|
| 均值 | np.mean(arr) | 计算用户平均年龄、销售额均值 |
| 中位数 | np.median(arr) | 分析收入分布(抗极端值干扰) |
| 标准差 | np.std(arr) | 评估数据波动(如股票价格稳定性) |
| 方差 | np.var(arr) | 测量数据离散程度 |
| 分位数 | np.quantile(arr, 0.75) | 确定成绩排名的75%分界线 |
scores = np.array([88, 72, 95, 60, 85])
print(f"平均分: {np.mean(scores)}") # 80.0
print(f"中位数: {np.median(scores)}") # 85.0
print(f"标准差: {np.std(scores):.1f}") # 12.8
2. 轴控制(axis参数)
- 规则:
axis=0(列统计),axis=1(行统计)
data = np.array([[90, 85], [70, 92], [88, 78]])
print(np.mean(data, axis=0)) # 计算每科平均分 → [82.7 85.0]
二、矩阵运算:科学计算核心
1. 高频操作速查
| 操作 | 函数/符号 | 场景 |
|---|---|---|
| 矩阵创建 | np.array([[1,2],[3,4]]) | 构建神经网络权重矩阵、图像像素矩阵 |
| 加法/减法 | +/- | 图像叠加、物理场叠加计算 |
| 矩阵乘法 | @ 或 np.dot() | 神经网络前向传播、3D变换 |
| 转置 | .T 或 np.transpose() | 数据格式转换、方程求解 |
| 逆矩阵 | np.linalg.inv() | 解线性方程组、坐标变换 |
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵乘法(点积)
print(A @ B) # [[19 22], [43 50]]# 解方程 Ax = b
b = np.array([5, 11])
x = np.linalg.inv(A) @ b # x = [1. 2.]
2. 常见误区
- 维度不匹配:矩阵乘法
A(m×n) @ B(n×p)要求中间维度一致 - 逐元素乘 vs 矩阵乘:
*是逐元素乘,@是矩阵乘法
print(A * B) # 逐元素相乘 → [[5 12], [21 32]]
print(A @ B) # 矩阵乘法 → [[19 22], [43 50]]
三、实战技巧扩展
1. 广播机制简化计算
不同形状的数组自动扩展维度计算:
matrix = np.array([[1, 2], [3, 4]])
vector = np.array([10, 20])
print(matrix + vector) # [[11 22], [13 24]]
2. 与 Pandas 联动
将 DataFrame 转为 NumPy 数组进行高效计算:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
arr = df.to_numpy() # 转为NumPy数组加速计算
四、下一步练习建议
- 统计实战:用
np.percentile()分析某城市房价分布。 - 矩阵应用:手动实现最小二乘法求解线性回归参数。
- 性能对比:比较 NumPy 与纯 Python 列表的运算速度差异。
遇到维度错误时,优先检查 .shape 属性!
