脾气暴躁不产生期望的样本方差值 - python

我有一个要为其计算样本方差的列表。当我使用numpy.var时,得到的结果与定义的函数不同。

有人可以帮我了解我所缺少的吗?

my_ls = [227, 222, 218, 217, 225, 218, 216, 229, 228, 221]


def calc_mean(ls):

        sum_tmp = 0
        for i in ls:
                sum_tmp = sum_tmp + i

        return round(sum_tmp/len(ls), 2)

def calc_var(ls):

        tmp_mean = calc_mean(ls)

        tmp_sum = 0
        for i in ls:
                tmp_sum = tmp_sum + ((i - tmp_mean)**2)

        return round(tmp_sum/(len(ls)-1), 2)


calc_var(my_ls)
>>> 23.66

np.var(my_ls)
>>> 21.29

23.66是我想要的值。

参考方案

默认情况下,在np.var(my_ls)情况下,分母是总样本大小(N)。

您可以在numpy中使用Delta Degrees of Freedom (ddof)参数,通过将ddof = 1设置为平均自由度来显示您正在计算样本方差。即您的分母现在变成(N-1)

np.var(my_ls,ddof=1)
>>> 23.66

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python:集群作业管理 - python

我在具有两个阶段的计算群集(Slurm)上运行python脚本,它们是顺序的。我编写了两个python脚本,一个用于阶段1,另一个用于阶段2。每天早上,我检查所有第1阶段的工作是否都以视觉方式完成。只有这样,我才开始第二阶段。通过在单个python脚本中组合所有阶段和作业管理,是否有一种更优雅/自动化的方法?我如何知道工作是否完成?工作流程类似于以下内容:w…

numpy loadtxt单行/行作为列表 - python

我只有一个数据文件,例如: 1.2 2.1 3.2 我使用numpy版本1.3.0 loadtxt加载它 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True) 输出是浮点数而不是数组 a = 1.2 我希望它将是: a = array([1.2]) 如果我读取了多行文件,则该文件…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…