减少字典列表的优雅方法?

2023-11-30

我有一个字典列表,每个字典都包含完全相同的键。我想找到每个键的平均值,并且我想知道如何使用reduce(或者如果不可能的话,使用另一种比使用嵌套更优雅的方式)fors).

这是列表:

[
  {
    "accuracy": 0.78,
    "f_measure": 0.8169374016795885,
    "precision": 0.8192088044235794,
    "recall": 0.8172222222222223
  },
  {
    "accuracy": 0.77,
    "f_measure": 0.8159133315763016,
    "precision": 0.8174754717495807,
    "recall": 0.8161111111111111
  },
  {
    "accuracy": 0.82,
    "f_measure": 0.8226353934130455,
    "precision": 0.8238175920455686,
    "recall": 0.8227777777777778
  }, ...
]

我想拿回这样的字典:

{
  "accuracy": 0.81,
  "f_measure": 0.83,
  "precision": 0.84,
  "recall": 0.83
}

这是我到目前为止所拥有的,但我不喜欢它:

folds = [ ... ]

keys = folds[0].keys()
results = dict.fromkeys(keys, 0)

for fold in folds:
    for k in keys:
        results[k] += fold[k] / len(folds)

print(results)

作为替代方案,如果您要对数据进行此类计算,那么您可能希望使用pandas(这对于一次性来说有点矫枉过正,但会大大简化此类任务......)

import pandas as pd

data = [
  {
    "accuracy": 0.78,
    "f_measure": 0.8169374016795885,
    "precision": 0.8192088044235794,
    "recall": 0.8172222222222223
  },
  {
    "accuracy": 0.77,
    "f_measure": 0.8159133315763016,
    "precision": 0.8174754717495807,
    "recall": 0.8161111111111111
  },
  {
    "accuracy": 0.82,
    "f_measure": 0.8226353934130455,
    "precision": 0.8238175920455686,
    "recall": 0.8227777777777778
  }, # ...
]

result = pd.DataFrame.from_records(data).mean().to_dict()

这给你:

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

减少字典列表的优雅方法? 的相关文章

  • 运行源代码中包含 Unicode 字符的 Python 2.7 代码

    我想运行一个在源代码中包含 unicode utf 8 字符的 Python 源文件 我知道这可以通过添加评论来完成 coding utf 8 在一开始的时候 但是 我希望不使用这种方法来做到这一点 我能想到的一种方法是以转义形式编写 un
  • 如何编写高效的配对算法?

    我需要一种算法的帮助 该算法可以有效地将人们分组 并确保以前的配对不会重复 例如 假设我们有 10 位候选人 candidates 0 1 2 3 4 5 6 7 8 9 并假设我们有一个先前匹配的字典 这样每个键值对即candidate
  • 将 stdout 重定向到 Python 中的文件? [复制]

    这个问题在这里已经有答案了 如何将 stdout 重定向到 Python 中的任意文件 当长时间运行的 Python 脚本 例如 Web 应用程序 从 ssh 会话内启动并处于后台 并且 ssh 会话关闭时 应用程序将引发 IOError
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • Poppler 已安装:为什么在 python3 上使用 pdf2image 时出现错误?

    我正在使用Python3 7 4在 macOS 10 14 6 上 我正在尝试使用pdf2image将 pdf 文件转换为图像 所以我已经安装了poppler with Homebrew 当我尝试转换 PDF 时收到错误消息 Traceba
  • Python/Flask:应用程序在关闭后正在运行

    我正在开发一个简单的 Flask Web 应用程序 我使用 Eclipse Pydev 当我开发该应用程序时 由于代码更改 我必须经常重新启动该应用程序 这就是问题所在 当我运行该应用程序时 我可以在本地主机上看到该框架 这很好 但是当我想
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 获取 zeep.exceptions.ValidationError:缺少与 suds 一起使用的方法的元素

    我正在移植开发的代码suds 0 6到zeep 2 4 0 以前的泡沫代码 client Client WSDLfile proxy proxy faults True config client factory create perUse
  • 如何在Python中获取绝对文件路径

    给定一条路径 例如 mydir myfile txt 如何在Python中找到文件的绝对路径 例如 在 Windows 上 我最终可能会得到 C example cwd mydir myfile txt gt gt gt import os
  • 指定 Parquet 属性 pyspark

    如何在 PySpark 中指定 Parquet 块大小和页面大小 我到处搜索 但找不到任何有关函数调用或导入库的文档 根据火花用户档案 https mail archives apache org mod mbox spark user 2
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • 如何在 Numpy 中实现垃圾收集

    我有一个名为main py 它引用另一个文件Optimisers py它仅具有功能并用于for循环进入main py 这些函数都有不同的优化功能 This Optimisers py然后引用另外两个类似的文件 其中也只有函数 它们位于whi
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • 如何在 Spyder IDE 中安装 Selenium 包

    我刚刚在工作中安装了 Spyder IDE 仅 Spyder 不是整个 Anaconda 并且希望使用 FireFox 自动化我的工作 我的问题是 如何安装 Selenium 软件包 I figured it out Here is ins
  • pandas apply:函数名是否带引号的区别

    简单数据框定义示例 df pd DataFrame A 2 4 1 B 8 4 1 C 6 2 7 df A B C 0 2 8 6 1 4 4 2 2 1 1 7 尝试理解以下块中函数参数调用的差异 df apply sum df app
  • 在 groupby 聚合函数中传递参数

    我有我引用的数据框df在代码中 我在每组的多个列上应用聚合函数 我还应用了用户定义的 lambda 函数f4 f5 f6 f7 有些功能非常相似 例如f4 f6 and f7其中只有参数值不同 我可以从以下位置传递这些参数吗字典 d 这样我
  • 从 subprocess.Popen 获取整个输出

    我通过调用 subprocess Popen 得到了一个有点奇怪的结果 我怀疑这与我对 Python 的陌生有很大关系 args cscript USERPROFILE tools jslint js USERPROFILE tools j
  • Synapse Notebook 参考 - 使用参数从另一个笔记本调用 Synapse Notebook

    我有一个带有参数的突触笔记本 我试图从另一个笔记本调用该笔记本 我正在使用 run 命令 我应该如何将参数从基本笔记本传递到正在调用的笔记本 另外 对我来说 上述答案不起作用 作为对此问题的单独解决方案 下面是一个答案 打开笔记本并转到最右
  • 提供节点名或服务名,或未知

    我收到这个 Python 错误 File Library Frameworks Python framework Versions 2 7 lib python2 7 urllib2 py line 1184 in do open rais
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这

随机推荐

  • array_intersect 多维数组内部

    我有一个多维数组 可以根据用户输入增加 我想在数组内执行 array intersect 以获得键之间的公共值 就像例子 Array php gt Array 0 gt 36 1 gt 51 2 gt 116 3 gt 171 4 gt 2
  • 报告公式中的小数点四舍五入

    我的水晶报表需要将数字四舍五入到小数点后两位 我努力了Round 55 815 2 但它返回55 81代替55 82 我该如何解决这个问题 如果出于显示目的需要对小数进行四舍五入 只需使用 减少小数 图标即可
  • 列出Android设备上的所有图像

    我试图列出自 14 小时以来 Android 设备中的所有图像及其路径 但我无法 它一直给我 java lang RuntimeException 无法启动活动 ComponentInfo 错误 我不明白为什么 有什么帮助吗 package
  • tolower() 不工作

    下面的代码片段用于将字符串转换为小写 int main unsigned char s AbS d tolower s printf s n s return 0 我正在得到output as AbS d 为什么字符串没有被转换 tolow
  • 在 MATLAB 中扫描每一列,无需 for 循环

    I 2 1 A 7 11 8 17 我怎样才能在 A 中选择正确的值而不for loop I是每列的索引向量A 那是I 1 is 8 and I 2 11 Use sub2ind根据正确的行和列坐标生成线性索引 然后使用它们进行索引A 在这
  • 如何提取 git 子目录并从中创建子模块?

    几个月前我开始了一个项目 并将所有内容存储在主目录中 在我的主目录 Project 中 有几个包含不同内容的子目录 项目 论文包含用 LaTeX 编写的文档 Project sourcecode RailsApp 包含我的 Rails 应用
  • 从原点拉取时“git pull”命令之间的差异?

    这些命令之间有什么区别 1 git pull 2 git pull origin 3 git pull origin master 4 git pull origin master 5 git pull origin HEAD master
  • 在 Outlook 插件中,如何检查我们是否处于撰写模式或阅读模式?

    我正在创建一个 Outlook 加载项并在 React 应用程序中使用 OfficeJS API 在那里 我想加载一组特定的撰写模式功能和另一组阅读模式功能 所以我的问题是 如何查看我当前处于哪种模式 如果您不想为读取和撰写模式创建两个单独
  • Android改变Material高程阴影颜色

    是否可以更改 xml 高程属性产生的阴影颜色 我希望通过代码动态改变阴影 我知道这个问题很老了 可能作者不再需要答案了 我会把它留在这里 以便其他人可以找到它 Lollipop 的高程系统不支持彩色阴影 但是 如果您需要彩色阴影 可以使用
  • C非阻塞键盘输入

    我正在尝试用 C 在 Linux 上 编写一个程序 该程序循环直到用户按下某个键 但不需要按键来继续每个循环 有没有一种简单的方法可以做到这一点 我想我可以用select 但这似乎需要很多工作 Alternatively is there
  • iPhone:Airplay SDK有什么用?

    有人可以解释一下什么是Airplay SDK 何时使用它 如何在程序中使用等详细信息 我希望它用于将视频从 iPhone 传输到电视 Thanks 隔空播放软件开发工具包实际上是一个针对iPhone Android Symbian的跨平台游
  • 如何将dict数据写入表格格式

    如何以下表输出格式写入以下数据 字典列表 data date datetime date 2011 2 8 user u xxx status u P date datetime date 2011 2 8 user u yyy statu
  • 从日期计算一年中的第几天

    我需要计算给定日期的天数 一年有 366 天 然而 每个月都有不同的值 我必须分配这些值 有没有比我现在的方法更快的方法 include
  • 如何让 Java 测试容器在 Docker 多阶段构建中工作?

    我有一个类似的问题使用 Maven 在 gitlab 中运行 Docker 测试容器 区别在于 我的脚本不是直接运行 mvn 而是运行 docker 多阶段构建 在 docker 映像内部运行测试 不幸的是 这似乎不适用于 PostgreS
  • 使用 LINQ 连接字符串

    写老派最有效的方法是什么 StringBuilder sb new StringBuilder if strings Count gt 0 foreach string s in strings sb Append s sb Remove
  • 尝试从字符串路径解析 Uri 时为 Null

    我正在用这个FileUtils类来处理Uri public class FileUtils private FileUtils private static final String TAG FileUtils private static
  • 不使用 jQuery 或 Ajax 的链式选择

    我正在使用 XAMPP Lite USB 版本 发现 jQuery 链接选择框脚本不起作用 因为它们依赖于 AJAX 而 AJAX 不适用于我的 XAMPP 我有两个选择框
  • 如何提高 Bootstrap 斑马条纹表的对比度

    我有以下带有斑马条纹的 twitter bootstrap 表 table class table table striped thead tr th Advantage th th Details th tr thead tbody tr
  • 当您从 C# P/Invoke 时,异步过程调用如何处理编组委托?

    我想知道当您在下面的特定情况下通过 P Invoke 将回调委托编组到 DLL 时 是否可能成为本机世界中托管线程管理问题的受害者 请参阅示例代码 这篇关于 Windows 中托管和非托管线程的 MSDN 文章 states 操作系统 Th
  • 减少字典列表的优雅方法?

    我有一个字典列表 每个字典都包含完全相同的键 我想找到每个键的平均值 并且我想知道如何使用reduce 或者如果不可能的话 使用另一种比使用嵌套更优雅的方式 fors 这是列表 accuracy 0 78 f measure 0 81693