我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在前文中,苏南大叔讲述了方差、标准差、样本方差、样本标准差的概念。这些概念对于数据统计是非常基础的知识。这些数学概念如何转化为python代码呢?这就是本文主要讨论的问题。

苏南大叔:python代码,numpy如何实现方差/标准差计算? - 如何实现方差标准差计算
python代码,numpy如何实现方差/标准差计算?(图3-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码所学所想。本文中利用numpy来实现对方差标准差的计算,另外,由于前面已经介绍了方差标准差的概念和实现公式。所以,这里也试着实现了一下方差标准差函数。

基本知识

首先需要对方差、标准差的概念定义有所理解:

因为里面大量涉及了乘方以及开方的概念,这里又研讨了一下在python里面实现乘方开方运算的可能性:

方案一,numpy实现方差、标准差【推荐】

npnumpy的引入后的别称,data为要计算的数据列表。

方案叙述

(总体)方差计算:

np.var(data)

(总体)标准差计算:

np.std(data)

样本方差计算:

np.var(data, ddof=1)

样本标准差计算:

np.std(data, ddof=1)

测试代码

测试代码:

import numpy as np

data = [2, 4, 6]

mean = np.mean(data)                         # 计算均值
variance = np.var(data)                      # 计算方差
standard_deviation = np.std(data)            # 计算标准差
variance2 = np.var(data, ddof=1)             # 计算样本方差
standard_deviation2 = np.std(data, ddof=1)   # 计算样本标准差

print("平均值:%s" % mean)
print("方差:%s,样本方差:%s" % (variance, variance2))
print("标准差:%s,样本标准差:%s" % (standard_deviation, standard_deviation2))

输出了预期数据:

平均值:4.0
方差:2.6666666666666665,样本方差:4.0
标准差:1.632993161855452,样本标准差:2.0

苏南大叔:python代码,numpy如何实现方差/标准差计算? - numpy计算方差
python代码,numpy如何实现方差/标准差计算?(图3-2)

方案二,自定义方差、标准差函数

下面的代码是苏南大叔根据网上的例子自己改编的,也可能不对,大家复制的时候请自己做分析。

方案叙述

自定义方差计算:

np.mean([math.pow(x - np.mean(data), 2) for x in data])

自定义标准差计算:

math.sqrt(np.mean([math.pow(x - np.mean(data), 2) for x in data]))

自定义样本方差计算:

sum([math.pow(x - np.mean(data), 2) for x in data]) / (len(data) - 1)

自定义样本标准差计算:

math.sqrt(sum([math.pow(x - np.mean(data), 2) for x in data]) / (len(data) - 1))

测试代码

测试代码:

import numpy as np
import math
data = [2, 4, 6]
def mean(data):
    # return sum([x for x in data]) / len(data)
    return sum(data) / len(data)
def var(data):
    return np.mean([math.pow(x - np.mean(data), 2) for x in data])
def std(data):
    return math.sqrt(np.mean([math.pow(x - np.mean(data), 2) for x in data]))
def var2(data):
    return sum([math.pow(x - np.mean(data), 2) for x in data]) / (len(data) - 1)
def std2(data):
    return math.sqrt(
        sum([math.pow(x - np.mean(data), 2) for x in data]) / (len(data) - 1)
    )
mean2 = mean(data)                  # 计算均值
variance = var(data)                # 计算方差
standard_deviation = std(data)      # 计算标准差
variance2 = var2(data)              # 计算样本方差
standard_deviation2 = std2(data)    # 计算样本标准差

print("平均值:%s" % mean2)
print("方差:%s,样本方差:%s" % (variance, variance2))
print("标准差:%s,样本标准差:%s" % (standard_deviation, standard_deviation2))

输出了预期数据:

平均值:4.0
方差:2.6666666666666665,样本方差:4.0
标准差:1.632993161855452,样本标准差:2.0

苏南大叔:python代码,numpy如何实现方差/标准差计算? - 自定义方案计算方差
python代码,numpy如何实现方差/标准差计算?(图3-3)

结束语

感谢大家的捧场,点击下面的链接,查看更多内容:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python