NumPy 统计函数与矩阵运算指南
一、常用统计函数
函数 | 说明 | 示例代码 & 输出 |
---|---|---|
sum() | 计算数组元素的和 | np.sum([1,2,3]) → 6 |
mean() | 计算数组元素的均值 | np.mean([1,2,3,4]) → 2.5 |
var() | 计算方差(与均值的平方差的平均) | np.var([1,2,3,4]) → 1.25 |
std() | 计算标准差(方差的平方根) | np.std([1,2,3,4]) → 1.118 |
max() | 返回最大值 | np.max([5,2,9]) → 9 |
min() | 返回最小值 | np.min([5,2,9]) → 2 |
argmax() | 返回最大值索引 | np.argmax([5,2,9]) → 2 |
argmin() | 返回最小值索引 | np.argmin([5,2,9]) → 1 |
cumsum() | 计算累计和 | np.cumsum([1,2,3]) → [1,3,6] |
cumprod() | 计算累计积 | np.cumprod([1,2,3]) → [1,2,6] |
二、矩阵运算
import numpy as np# 创建矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 1. 矩阵乘法
print("矩阵乘法:")
print(A @ B) # 或 np.dot(A, B)
# 输出:
# [[19 22]
# [43 50]]# 2. 转置矩阵
print("\n转置矩阵:")
print(A.T)
# 输出:
# [[1 3]
# [2 4]]# 3. 逆矩阵
C = np.array([[1, 2], [3, 4]])
print("\n逆矩阵:")
print(np.linalg.inv(C))
# 输出:
# [[-2. 1. ]
# [ 1.5 -0.5]]# 4. 行列式
print("\n行列式:")
print(np.linalg.det(C)) # 输出: -2.0
三、多维数组统计(沿轴计算)
arr = np.array([[1, 2, 3], [4, 5, 6]])# 沿列计算(axis=0)
print("列求和:", np.sum(arr, axis=0)) # [5 7 9]
print("列均值:", np.mean(arr, axis=0)) # [2.5 3.5 4.5]# 沿行计算(axis=1)
print("行最大值:", np.max(arr, axis=1)) # [3 6]
print("行最小值索引:", np.argmin(arr, axis=1)) # [0 0]
四、关键概念说明
-
方差 (Variance)
var = mean(abs(x - x.mean())**2
-
反映数据离散程度(各数值与均值距离的平方的平均值)
-
标准差 (Standard Deviation)
方差的平方根,用于衡量数据波动大小 -
累计和/积 (Cumulative Sum/Product)
逐步累积计算结果:
[a, b, c]
的累计和 →[a, a+b, a+b+c]