当前位置: 首页 > news >正文

php做企业网站管理系统购物网站制作公司

php做企业网站管理系统,购物网站制作公司,自学网站建设工资,wordpress新闻页面一键分享NumPy-统计函数详解一、基础统计函数:均值、方差、标准差1. 全局统计:忽略维度的整体计算2. 按轴统计:指定维度方向的计算二、位置统计:中位数、分位数、百分位数1. 中位数计算2. 分位数与百分位数三、离散程度:极差、…

NumPy-统计函数详解

    • 一、基础统计函数:均值、方差、标准差
      • 1. 全局统计:忽略维度的整体计算
      • 2. 按轴统计:指定维度方向的计算
    • 二、位置统计:中位数、分位数、百分位数
      • 1. 中位数计算
      • 2. 分位数与百分位数
    • 三、离散程度:极差、四分位距、变异系数
      • 1. 极差(Range)
      • 2. 四分位距(IQR)
      • 3. 变异系数(Coefficient of Variation)
    • 四、相关分析:协方差与相关系数
      • 1. 协方差矩阵
      • 2. 相关系数矩阵
    • 五、高级应用:加权统计与掩码处理
      • 1. 加权统计
      • 2. 掩码数组:处理缺失值
    • 六、性能优化与注意事项
      • 1. 内存高效的分块计算
      • 2. 统计函数的精度问题
    • 七、实战案例:数据分布分析
      • 1. 数据标准化
      • 2. 异常值检测
      • 3. 数据分布可视化(配合matplotlib)

统计函数是提取数据特征、洞察数据分布的核心工具,NumPy作为Python数值计算的基石,提供了丰富的统计函数库,涵盖均值、方差、中位数、相关系数等多种统计指标。

一、基础统计函数:均值、方差、标准差

1. 全局统计:忽略维度的整体计算

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])print(np.mean(arr))      # 均值:3.5
print(np.var(arr))       # 方差:2.9166666666666665
print(np.std(arr))       # 标准差:1.707825127659933
print(np.sum(arr))       # 总和:21
print(np.min(arr))       # 最小值:1
print(np.max(arr))       # 最大值:6

2. 按轴统计:指定维度方向的计算

通过axis参数指定统计方向:

  • axis=0:按列方向(跨行统计)
  • axis=1:按行方向(跨列统计)
print(np.mean(arr, axis=0))  # 按列求均值:[2.5 3.5 4.5]
print(np.mean(arr, axis=1))  # 按行求均值:[2. 5.]
print(np.sum(arr, axis=1))   # 按行求和:[ 6 15]

二、位置统计:中位数、分位数、百分位数

1. 中位数计算

中位数是将数据分为上下两部分的数值,对异常值不敏感:

data = np.array([1, 3, 2, 4, 5])
print(np.median(data))  # 输出:3.0(排序后中间的数)# 偶数个元素时取中间两个数的平均值
data = np.array([1, 2, 3, 4])
print(np.median(data))  # 输出:2.5((2+3)/2)

2. 分位数与百分位数

  • 分位数:将数据分为k等份的数值(如四分位数k=4)
  • 百分位数:分位数的特殊情况(k=100)
data = np.array([1, 2, 3, 4, 5])
print(np.percentile(data, 25))  # 第25百分位数:2.0
print(np.percentile(data, 50))  # 第50百分位数(中位数):3.0
print(np.percentile(data, 75))  # 第75百分位数:4.0

三、离散程度:极差、四分位距、变异系数

1. 极差(Range)

最大值与最小值的差值:

data = np.array([1, 3, 2, 4, 5])
print(np.ptp(data))  # 输出:4(5-1)

2. 四分位距(IQR)

第75百分位数与第25百分位数的差值,衡量数据中间50%的离散程度:

q75, q25 = np.percentile(data, [75, 25])
print(q75 - q25)  # 输出:2.0(4-2)

3. 变异系数(Coefficient of Variation)

标准差与均值的比值,用于比较不同数据集的相对离散程度:

def coefficient_of_variation(x):return np.std(x) / np.mean(x)data = np.array([1, 2, 3, 4, 5])
print(coefficient_of_variation(data))  # 输出:0.5270462766947299

四、相关分析:协方差与相关系数

1. 协方差矩阵

衡量两个变量的总体误差,反映变量间的线性关系方向:

x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(np.cov(x, y))
# 输出:
# [[ 1.  1.]
#  [ 1.  1.]]
# 对角线为各自的方差,非对角线为协方差

2. 相关系数矩阵

将协方差标准化到[-1,1]区间,更直观地反映相关性强度:

print(np.corrcoef(x, y))
# 输出:
# [[1. 1.]
#  [1. 1.]]
# 完全正相关(相关系数为1)

五、高级应用:加权统计与掩码处理

1. 加权统计

对不同数据点赋予不同权重,计算加权均值、方差等:

data = np.array([1, 2, 3])
weights = np.array([0.1, 0.3, 0.6])
print(np.average(data, weights=weights))  # 加权均值:2.5

2. 掩码数组:处理缺失值

使用np.ma模块创建掩码数组,忽略特定值进行统计:

data = np.array([1, np.nan, 3])
masked_data = np.ma.masked_invalid(data)  # 屏蔽NaN值
print(np.ma.mean(masked_data))  # 输出:2.0(忽略NaN后计算均值)

六、性能优化与注意事项

1. 内存高效的分块计算

处理超大规模数据时,可使用np.nanmean等函数自动处理NaN值,并通过out参数指定输出数组:

# 假设data是一个非常大的数组
result = np.empty(shape=data.shape[1:])
np.mean(data, axis=0, out=result)  # 直接将结果写入预分配内存

2. 统计函数的精度问题

不同数据类型可能导致统计结果精度差异:

arr_float = np.array([1.1, 2.2, 3.3], dtype=np.float64)
arr_float32 = arr_float.astype(np.float32)print(np.sum(arr_float))   # 输出:6.6(高精度)
print(np.sum(arr_float32)) # 输出:6.600000381469727(低精度)

七、实战案例:数据分布分析

1. 数据标准化

将数据转换为均值为0、标准差为1的标准正态分布:

data = np.array([1, 2, 3, 4, 5])
standardized = (data - np.mean(data)) / np.std(data)
print(standardized)  # 输出:[-1.26491106 -0.63245553  0.          0.63245553  1.26491106]

2. 异常值检测

使用四分位距识别异常值:

q1, q3 = np.percentile(data, [25, 75])
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
outliers = data[(data < lower_bound) | (data > upper_bound)]
print(outliers)  # 输出异常值

3. 数据分布可视化(配合matplotlib)

import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 1000)  # 生成正态分布数据
plt.hist(data, bins=30)
plt.axvline(np.mean(data), color='r', linestyle='dashed', linewidth=2)  # 均值线
plt.axvline(np.median(data), color='g', linestyle='dashed', linewidth=2)  # 中位数线
plt.show()

总结:NumPy统计函数的核心优势:

  1. 高效性:底层用C实现,避免Python循环,处理大规模数据时性能优异
  2. 灵活性:通过axis参数支持多维数组的任意方向统计
  3. 鲁棒性:内置对NaN、Inf等特殊值的处理机制

That’s all, thanks for reading~~
觉得有用就点个赞、收进收藏夹吧!关注我,获取更多干货~

http://www.dtcms.com/a/454592.html

相关文章:

  • Shell test 命令详解
  • html网站素材网网站建设课程设计文献综述
  • 现在还做自适应网站网站设计要学什么
  • 品牌网站建设的关键事项网站遮罩是什么
  • 营销型网站建设排名网站建设公司需要申请icp吗
  • 江门营销网站建设推广的公司
  • 呼和浩特企业网站排名优化昌邑建设局网站
  • 手机网站建设多少钿个人在线做网站免费
  • 企业网站开发时间好看的网站设计
  • 公司的服务器能建设网站吗中国住建网证书查询
  • 乐清建设路小学网站淘宝网站开发多少金额
  • 大四记录10.7
  • 网站繁简通dedecms做的网站手机上看图片变形
  • MySQL的快速入门
  • 【1002】输出第二个整数
  • 网站建设及优化 赣icpwordpress lover
  • 可以看qq空间的网站网站分级怎么做
  • 建设部网站城乡规划资质标准手工活外发加工无押金
  • [Java]PTA:jmu-Java-03面向对象基础-覆盖与toString
  • 电子商务网站建设感悟安装vs2015网站开发
  • P1068 [NOIP 2009 普及组] 分数线划定
  • 邯郸装修网站建设专业的设计网站建设
  • 网站建设网络拓扑微信营销案例ppt
  • 校园网站模板企业邮箱注册方法
  • html5网站开发demoWordPress广告平台主题
  • 非对称加密
  • Java学习之旅第二季-10:包装类
  • h5网站开发框架网站搭建制作公司
  • 韦博在上面做课件的网站叫什么网站设计实施
  • 长沙律师网站建设淘宝客如何做免费的网站