使用 numpy 加权百分位数

2023-12-13

有没有办法使用 numpy.percentile 函数来计算加权百分位数?或者有人知道计算加权百分位数的替代 python 函数吗?

thanks!


完全矢量化的 numpy 解决方案

这是我使用的代码。这不是一个最佳的(我无法用numpy),但仍然比公认的解决方案更快、更可靠

def weighted_quantile(values, quantiles, sample_weight=None, 
                      values_sorted=False, old_style=False):
    """ Very close to numpy.percentile, but supports weights.
    NOTE: quantiles should be in [0, 1]!
    :param values: numpy.array with data
    :param quantiles: array-like with many quantiles needed
    :param sample_weight: array-like of the same length as `array`
    :param values_sorted: bool, if True, then will avoid sorting of
        initial array
    :param old_style: if True, will correct output to be consistent
        with numpy.percentile.
    :return: numpy.array with computed quantiles.
    """
    values = np.array(values)
    quantiles = np.array(quantiles)
    if sample_weight is None:
        sample_weight = np.ones(len(values))
    sample_weight = np.array(sample_weight)
    assert np.all(quantiles >= 0) and np.all(quantiles <= 1), \
        'quantiles should be in [0, 1]'

    if not values_sorted:
        sorter = np.argsort(values)
        values = values[sorter]
        sample_weight = sample_weight[sorter]

    weighted_quantiles = np.cumsum(sample_weight) - 0.5 * sample_weight
    if old_style:
        # To be convenient with numpy.percentile
        weighted_quantiles -= weighted_quantiles[0]
        weighted_quantiles /= weighted_quantiles[-1]
    else:
        weighted_quantiles /= np.sum(sample_weight)
    return np.interp(quantiles, weighted_quantiles, values)

例子:

加权分位数([1,2,9,3.2,4],[0.0,0.5,1.])

数组([ 1. , 3.2, 9. ])

加权分位数([1,2,9,3.2,4],[0.0,0.5,1.],sample_weight=[2,1,2,4,1])

数组([ 1. , 3.2, 9. ])

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 numpy 加权百分位数 的相关文章

  • 在 pandas 中单独打印一列的原始值?

    我有一个数据框 df pd DataFrame name george age 23 name anna age 26 现在我想检索乔治的年龄 df df name george age 但这会输出一些额外的信息以及原始值 0 23 Nam
  • 如何使用 Python 裁剪图像中的矩形

    谁能给我关于如何裁剪两个矩形框并保存它的建议 我已经尝试过这段代码 但效果不佳 import cv2 import numpy as np Run the code with the image name keep pressing spa
  • Python GTK + webkit - 在 gtk.main() 之后插入 JavaScript

    我在终端中尝试了这个 一切正常 但是如果我在脚本内运行这个 我无法在 gtk main 之后插入 JavaScript import gtk import webkit w gtk Window b webkit WebView w add
  • 以矢量化方式在另一个 DataFrame 中查找包含值子集的行

    如何匹配此 DataFrame 中的值source car id lat lon 0 100 10 0 15 0 1 100 12 0 10 0 2 100 09 0 08 0 3 110 23 0 12 0 4 110 18 0 32 0
  • 无法使用 BeautifulSoup 和 Requests 抓取下拉菜单

    我想抓取百年灵网站上的产品页面以获取各种信息 示例页面 https www breitling com gb en watches navitimer b01 chronograph 46 AB0127211C1A1 https www b
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • 如何在Python代码中查找列号

    简短问题 当按上述方式调用函数时 我可以找到行号here https stackoverflow com questions 3056048 filename and line number of python script 同样 如何找到
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • reStructuredText:README.rst 未在 PyPI 上解析

    我有一个托管在 Github 和 PyPI 上的 Python 项目 在 Github 上 https github com sloria TextBlob blob master README rst https github com s
  • Python 3在for循环中更改字典键的值不起作用

    我的 python 3 代码没有按预期工作 def addFunc x y print x y def subABC x y z print x y z def doublePower base exp print 2 base exp d
  • 将列表中的 None 替换为最左边的非 none 值

    Given a None 1 2 3 None 4 None None I d like a None 1 2 3 3 4 4 4 目前我已经用以下方法强制它 def replaceNoneWithLeftmost val last Non
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 线性同余生成器 - 如何选择种子和统计检验

    我需要做一个线性同余生成器 它将成功通过所选的统计测试 我的问题是 如何正确选择发电机的数字以及 我应该选择哪些统计检验 我想 均匀性的卡方频率测试 每代收集10 000个号码的方法 将 0 1 细分为10个相等的细分 柯尔莫哥洛夫 斯米尔
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • Python 导入非常慢 - Anaconda python 2.7

    我的 python import 语句变得非常慢 我使用 Anaconda 包在本地运行 python 2 7 导入模块后 我编写的代码运行得非常快 似乎只是导入需要很长时间 例如 我使用以下代码运行了一个 tester py 文件 imp
  • ValueError:使用火炬张量时需要解压的值太多

    对于神经网络项目 我使用 Pytorch 并使用 EMNIST 数据集 已经给出的代码加载到数据集中 train dataset dsets MNIST root data train True transform transforms T
  • 如何从 nltk 下载器中删除数据/模型?

    我在 python3 NLTK 中安装了一些 NLTK 包 通过nltk download 尝试过它们 但不需要它们 现在想删除它们 我怎样才能删除例如包large grammars来自我的 NLTK 安装 我不想删除完整的 NLTK 安装
  • 在父类中访问子类变量

    我有一个父类和一个继承的子类 我想知道如何访问我的父类中的子类变量 我尝试了这个但失败了 class Parent object def init self print x class Child Parent x 1 x Child Er

随机推荐

  • 如何将消息重定向到死信队列Azure服务总线

    我正在使用隔离的天蓝色函数从队列接收消息 我需要验证收到的消息 如果无效 则将其发送到死信队列 我发现唯一的方法是抛出异常 重试 10 次后 消息将被移至死信队列 当然这不是一个好的解决方案 也许有人面临同样的任务 谢谢 Function
  • 如何让这个嵌套通用参数系统正常工作?

    所以我正在努力让一个相当复杂的系统运行起来 这是我正在尝试的基础知识 Rules abstract class Rule stuff class ExampleRule extends Rule stuff 处理程序 abstract cl
  • 在 Swift 4 中,如果按下“Backspace”按钮且文本字段为空,如何移动到上一个 UITextField?

    我正在尝试解决这个问题 当我使用下面的代码时 我可以从一个文本字段移动到下一个文本字段 然后单击 退格 按钮 但仅当文本字段中有文本时才有效 我的问题 当文本字段为空时 如何单击 退格 按钮并移至上一个文本字段 第二个问题 如何去掉屏幕上闪
  • 通过 Android 访问 Google 帐户 ID/用户名

    如何在代码中访问用户的 Google 帐户 ID 用户名 我正在构建一个应用程序 它将调用 Web 服务来存储数据 并且我想识别提交数据的人的身份 我遇到了同样的问题 这两个链接为我解决了 第一个是这个 如何在 Android 手机上找回已
  • 字符串数组列表成一个逗号分隔的字符串

    尝试将字符串的 Arraylist 转换为一个大逗号分隔的字符串 但是当我使用 String joined TextUtils join participants 调试器显示参与者的大小为 4 但是连接值为 因此为空 private Arr
  • Symfony 1.4 邮件程序中的电子邮件正文?

    我正在使用 Symfony 1 4 邮件程序 在其中构建电子邮件所需的各个部分 然后使用以下命令将其发送出去 this gt getMailer gt composeAndSend sender recipient subject body
  • 在反应本机地图上需要未知模块“未定义”

    我想实现react native mapshere 但是当我导入上面的 MapView 时App js与代码import MapView from react native maps 我收到此错误 需要未知模块 未定义 如果您确定该模块存在
  • 子进程调用无效参数或选项未找到

    我试图在 Linux 上使用 subprocess call 调用 ffmpeg 命令 但我无法获得正确的参数 之前 我使用了 os system 并且它有效 但不推荐这种方法 使用带破折号的参数 例如 i 会出现此错误 Unrecogni
  • 如何使用 JHipster 注册表修复无效的 JWT [Docker]?

    我想用 JHipster 构建一个微服务软件 我正在 Docker 中运行 jhipster registry v3 2 4 我还有一个微服务应用程序 使用生成器 5 0 1 创建 但我没有生成网关应用程序 我在 docker compos
  • 在SQL / MySQL中,连接语句中的“ON”和“WHERE”有什么区别?

    以下语句给出相同的结果 一个是使用on 另一个使用where mysql gt select from gifts INNER JOIN sentGifts ON gifts giftID sentGifts giftID mysql gt
  • 具有抽象类的 JPA 实体继承 - ConstrainViolationException

    我正在尝试使用 JPA 注释和抽象类设置实体继承 我们的目标是让 DAO 通过其扩展与基础对象一起工作 以便我们可以通过使用不同的实体扩展 切入点和覆盖来对同一应用程序进行修改 而无需更改提供者和管理器 例子 基础应用程序堆栈有一个 DAO
  • 使用递归在Scheme中进行排列

    我发现了以下一段代码 它在Scheme中进行了排列 我的意思是 如果我输入类似的参数 1 2 3 它会给我 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 代码如下 define remove x lst cond
  • 使用 jQuery 和 JSONP 跨域检索 html

    我有一个表单 可以输出一行简单的 html a href link A LINK a 我可以直接使用附加到 url 的数据来访问该流程 例如http site com form asp sample 100 因为这是跨域 到子域 所以我尝试
  • C 中的精确宽度整数类型 (stdint.h)

    我希望 char short 和 int 类型的宽度为 1 2 和 4 个字节 我已经包括了stdint h标题进入我的来源 这是否保证 int8 t int16 t 和 int32 t 整数类型具有指定的宽度 实现这一目标的最佳方法是什么
  • Plon 4.3 默认编辑器未显示

    我有一个 Plone 4 3 站点 它是从 Plone 2 5 站点迁移而来的 它一直工作得很好 但由于某种原因 编辑任何页面或内容项时显示的默认编辑器是直接的 HTML 视图 我已经在 Firefox Chrome 和 Safari 中对
  • Excel VBA 搜索按钮

    我正在尝试使用文本框和命令按钮在整个工作簿中搜索特定单词或值 例如 3132 或 工作指令 到目前为止 我可以搜索我所在的工作表 但无法搜索工作簿的其余部分 另外 一些工作表是隐藏的 对此的任何见解都会有益并帮助我很多 我在下面列出了我当前
  • 颤振错误:java.lang.NoSuchFieldError PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING

    我试图解决这个问题 但它总是给我同样的错误 我使用以下 Firebase 服务 Firebase 身份验证 Firebase 数据库 Firebase 存储 Firebase 消息传递 我希望能解决这个问题 感谢您的帮助 谢谢 截屏 Her
  • 如何从分类变量创建交互设计矩阵?

    我主要从事 R 统计建模 机器学习工作 并希望提高我的 Python 技能 我想知道在 python 中创建分类交互 任意程度 的设计矩阵的最佳方法 一个玩具示例 import pandas as pd from urllib import
  • DDD 中的有界上下文与 CQRS。共享聚合/实体。可能的?

    我找到了这个代码示例 https code google com p ddd cqrs sample 看起来非常完整且组织良好 不是一个 框架 只是一个示例项目 具有非常精细和明确的做事方式 但是 不完整 这带来了一些疑问 他们很擅长回答你
  • 使用 numpy 加权百分位数

    有没有办法使用 numpy percentile 函数来计算加权百分位数 或者有人知道计算加权百分位数的替代 python 函数吗 thanks 完全矢量化的 numpy 解决方案 这是我使用的代码 这不是一个最佳的 我无法用numpy 但