Python-Gaussian

高斯分布Gaussian概率密度函数:

P(x) = \frac{1}{\sqrt{2\pi }\sigma }e^{-\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}

其中,σ为总体标准差,μ为总体均值。

"""
@Title: Gaussian distribution
@Time: 2024/2/18
@Author: Michael Jie
"""

import numpy as np
from numpy import random


class MjGaussian:
    def __init__(self):
        self.data_sets = None  # 数据
        self.mu = 0  # 均值
        self.sigma = 0  # 标准差

    # 计算符合数据集的高斯分布
    def calculating(self, data_sets):
        data_sets = np.array(data_sets)
        self.mu = np.sum(data_sets) / len(data_sets)  # 均值
        for data_set in data_sets:
            self.sigma += (abs(data_set - self.mu)) ** 2
        self.sigma = np.sqrt(self.sigma / len(data_sets))  # 标准差

    # 计算概率
    def gaussian(self, x):
        return (1 / (np.sqrt(2 * np.pi) * self.sigma)) * \
               np.exp(-((x - self.mu) ** 2) / (2 * self.sigma ** 2))


if __name__ == '__main__':
    data = random.normal(loc=0, scale=2, size=10000)
    print("数据集为:{x}".format(x=data))
    mj_gaussian = MjGaussian()
    mj_gaussian.calculating(data)
    print("数据集的均值为:{mu}".format(mu=mj_gaussian.mu))
    print("数据集的标准差为:{sigma}".format(sigma=mj_gaussian.sigma))
    
    """
    数据集为:[ 2.41444529 -3.0405191   0.49136134 ... -1.97885873  0.80926748
      3.47828956]
    数据集的均值为:0.03061806508840724
    数据集的标准差为:1.9761535640834953
    """

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值