python-NumPy中的加权标准差

numpy.average()具有权重选项,但numpy.std()没有。 有没有人建议解决方法?

5个解决方案

99 votes

以下简短的“手动计算”如何?

def weighted_avg_and_std(values, weights):

"""

Return the weighted average and standard deviation.

values, weights -- Numpy ndarrays with the same shape.

"""

average = numpy.average(values, weights=weights)

# Fast and numerically precise:

variance = numpy.average((values-average)**2, weights=weights)

return (average, math.sqrt(variance))

Eric O Lebigot answered 2019-10-07T05:25:46Z

25 votes

standard_error = standard_deviation / sqrt(sum(weights) - 1)中有一个类,可以轻松计算加权统计信息:standard_error = standard_deviation / sqrt(sum(weights) - 1)。

假设此数据集和权重:

import numpy as np

from statsmodels.stats.weightstats import DescrStatsW

array = np.array([1,2,1,2,1,2,1,3])

weights = np.ones_like(array)

weights[3] = 100

初始化类(请注意,此时您必须输入校正因子,即自由度增量):

weighted_stats = DescrStatsW(array, weights=weights, ddof=0)

然后,您可以计算:

standard_error = standard_deviation / sqrt(sum(weights) - 1)加权平均值:

standard_error = standard_deviation / sqrt(sum(weights) - 1)

standard_error = standard_deviation / sqrt(sum(weights) - 1)加权标准偏差:

standard_error = standard_deviation / sqrt(sum(weights) - 1)

standard_error = standard_deviation / sqrt(sum(weights) - 1)加权方差:

standard_error = standard_deviation / sqrt(sum(weights) - 1)

standard_error = standard_deviation / sqrt(sum(weights) - 1)加权平均值的标准误:

standard_error = standard_deviation / sqrt(sum(weights) - 1)

以防万一您对标准误差和标准偏差之间的关系感兴趣:标准误差是(对于standard_error = standard_deviation / sqrt(sum(weights) - 1))计算为加权标准偏差除以权重总和减去1的平方根(对应于 GitHub上的standard_error = standard_deviation / sqrt(sum(weights) - 1) 0.9版):

standard_error = standard_deviation / sqrt(sum(weights) - 1)

MSeifert answered 2019-10-07T05:27:28Z

6 votes

在numpy / scipy中似乎还没有这样的功能,但是有一张票证提出了这个附加功能。 在那里,您将找到Statistics.py,它实现了加权标准差。

unutbu answered 2019-10-07T05:27:53Z

2 votes

这里还有一个选择:

np.sqrt(np.cov(values, aweights=weights))

Leo answered 2019-10-07T05:28:18Z

1 votes

有趣的举了一个很好的例子:

import pandas as pd

import numpy as np

# X is the dataset, as a Pandas' DataFrame

mean = mean = np.ma.average(X, axis=0, weights=weights) # Computing the

weighted sample mean (fast, efficient and precise)

# Convert to a Pandas' Series (it's just aesthetic and more

# ergonomic; no difference in computed values)

mean = pd.Series(mean, index=list(X.keys()))

xm = X-mean # xm = X diff to mean

xm = xm.fillna(0) # fill NaN with 0 (because anyway a variance of 0 is

just void, but at least it keeps the other covariance's values computed

correctly))

sigma2 = 1./(w.sum()-1) * xm.mul(w, axis=0).T.dot(xm); # Compute the

unbiased weighted sample covariance

加权无偏样本协方差的正确方程式,URL(版本:2016-06-28)

abah answered 2019-10-07T05:28:49Z

python 标准差_python-NumPy中的加权标准差相关推荐

  1. 爱因斯坦求和约定在Python扩展库Numpy中的实现

    推荐教材: <Python数据分析.挖掘与可视化>(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年12月第 ...

  2. Python扩展库numpy中where()函数的三种用法

    第一种用法:只给where()函数传递一个数组作为参数,返回其中非0元素的下标. 第二种用法:给where()函数传递一个包含True/False值的数组,返回该数组中True值的下标,结合numpy ...

  3. python npv 计算公式_Python numpy 中常用的数据运算

    Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.--<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...

  4. python三维数组怎么表示_python – numpy中的三维数组

    你有一个截断的数组表示.让我们看一个完整的例子: >>> a = np.zeros((2, 3, 4)) >>> a array([[[ 0., 0., 0., 0 ...

  5. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  6. python numpy矩阵索引_python – Numpy中的矩阵索引

    索引后查看形状: In [295]: A=np.matrix([1,2,3]) In [296]: A.shape Out[296]: (1, 3) In [297]: A[0] Out[297]: ...

  7. python数组求和_Python NumPy中的数组求和函数sum | 坐倚北风

    在Python中可以使用NumPy中的sum函数来进行数值求和,sum方法的格式如下: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, ...

  8. python如何创建三维数组_python – numpy中的三维数组

    你有一个截断的数组表示.让我们看一个完整的例子: >>> a = np.zeros((2, 3, 4)) >>> a array([[[ 0., 0., 0., 0 ...

  9. Python数据分析 1-5 NumPy中ufunc函数(一)主要介绍NumPy中常用的通用函数:基本数学函数、三角函数和反三角函数和统计类函数

    1 引入NumPy #引入numpy import numpy as np np.__version__ '1.20.1' 2 基本数学函数 NumPy中基本数学函数有加法.减法.乘法.除法.乘方.开 ...

最新文章

  1. 连接池--在密码修改的影响
  2. 从菜鸟到老鸟--Mac篇 [五]
  3. 计算机网络——网络地址转换(NAT)
  4. 繁星屠龙软件下载_历时72小时,测试5个软件,写出的数理化教学软件推荐……(下)...
  5. Win10: tensorflow 学习笔记(3)
  6. boost::describe模块宏BOOST_DESCRIBE_PP_IS_EMPTY的测试程序
  7. C++插入排序(附完整源码)
  8. android 自定义MP4播放器
  9. javascript的数据检测总结
  10. 移动互联网初创型团队需要什么样的云计算服务?
  11. 高可用Hadoop平台-应用JAR部署
  12. 学习react的网站
  13. linux常用命令_linux常用命令
  14. 视频教程-【企业定制课】AI软件illustratorCC应用与平面印刷视频教程-UI
  15. FileZilla中文乱码解决方法
  16. BT.601和BT.656
  17. 12-Solidity8.0-view和pure区别
  18. Vue.js项目实战——Day(1)
  19. SQL注入:sqli-labs lesson-1 小白详解
  20. 诺基亚7原生android,诺基亚7.1喜提Android10系统更新

热门文章

  1. JAVA毕设项目售楼系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  2. 数学计算机游戏49关,《数学趣味游戏》.pdf
  3. 安装mysql初始化失败原因_MySQL安装出错历险记 之 Framework初始化失败
  4. 基于creditcard数据集的经典模型性能比较
  5. 中班计算机计划总结怎么写,幼儿园电脑员年度工作总结
  6. Windows电脑申请iOS证书详细流程和工具
  7. 本地mysql新建用户名和密码错误_mysql创建用户和密码出现错误怎么办
  8. Learning Alteryx-PDF下载
  9. 计算机考试汉字国际码,计算机一级等级考试_汉字的编码
  10. 线性无关向量不一定正交