直方图的简单性质
- 横轴表示“分组”,纵轴表示“频率/组距”
- 每组的面积表示频率(即)
- 各组面积之和等于1(即频率之和为1)
- 各组中点值近似为该组的平均值
- 样本的平均值等于
简便算法
设组距为
利用python实现以上算法
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2022/9/12 21:37
# @Author : 申炎
# @File : histogram_.py
"""histogram直方图求平均值算法"""
import numpy as np
class Myhistogram(object):
def __init__(self):
pass
def mean(self, x, y):
"""
求样本平均值
:param x: 分组,列表[x0, x1, x2, ……, xn]
:param y: 频率/组距, 列表[y1, y2, y3, ……, yn]
:return: 平均值
"""
d = x[1] - x[0] # 组距
x1 = (x[1] + x[0]) / 2 # 第一组中点值
res = []
n = len(y) # 求分组
for i in range(1, n):
res.append(np.sum(y[i:]))
return x1 + d ** 2 * np.sum(res)
if __name__ == '__main__':
x = [i+0.5 for i in range(1, 8)]
y = [0.15, 0.20, 0.30, 0.20, 0.10, 0.05]
htg = Myhistogram()
print(htg.mean(x, y))
利用下面例题的数据测试,结果吻合标准答案.甲的平均值
例题(2019年高考新课标III卷理19题)
作为高考试题,答案需要手算,下面演示手动计算的方法(以甲为例)
第一组的中点值为,组距为
因为高考试题的数据是经过反复斟酌的,必须要让考生在考试时间内完成计算,所以总分的数据不会太复杂,利用这种方法可以加快计算速度。
练习
常规算法的列式与计算:
采用快捷方法的列式与计算:
由此可见,当数值简单时,计算量差异并不明显,但当数值复杂时,手动计算的优势就突显出来了。