是否可以使用 np 数组作为 h5py 数据集中的索引?

2024-04-21

我需要将多个数据集(每个数据集包含在一个单独的文件中)合并到属于最终文件的另一个数据集中。 当部分数据集中的数据被复制到最终数据集中时,它们的顺序不会保留 - 部分数据集中的数据通过索引“映射”到最终数据集中。我创建了两个列表,final_indices 和partial_indices,并写道:

final_dataset   = final_hdf5file['dataset']
partial_dataset = partial_hdf5file['dataset']

# here partial ad final_indices are lists.
final_dataset[final_indices] = partial_dataset[partial_indices] 

这样做的问题是性能非常糟糕 - 原因是final_和partial_indices都必须是列表。 我的解决方法是从最终数据集和部分数据集创建两个 np 数组,并使用 np 数组作为索引。

final_array   = np.array(final_dataset)
partial_array = np.array(partial_dataset)
# here partial ad final_indices are nd arrays.
final_array[final_indices] = partial_array[partial_indices] 

然后将最终数组重新写入最终数据集。

final_dataset[...] = final_array

然而,在我看来,这样做很不雅观。

是否可以使用 np.arrays 作为 h5py 数据集中的索引?


所以你正在为读取和写入做花式索引:

http://docs.h5py.org/en/latest/high/dataset.html#fancy-indexing http://docs.h5py.org/en/latest/high/dataset.html#fancy-indexing

它警告说,长列表可能会很慢。

我可以看到在哪里读取和写入整个集合以及在数组上进行映射会更快,尽管我还没有实际测试过。读/写速度更快,映射速度也更快

http://docs.h5py.org/en/latest/high/dataset.html#reading-writing-data http://docs.h5py.org/en/latest/high/dataset.html#reading-writing-data

我会使用切片符号(或value)来加载数据集,但这只是一个小问题。

final_array   = final_dataset[:]

如果函数中的代码看起来不优雅,请将其隐藏。

这个 oneliner 可能有用(我还没有测试过)。 RHS 更有可能发挥作用。

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

是否可以使用 np 数组作为 h5py 数据集中的索引? 的相关文章

随机推荐

  • ReactiveCommand 传递命令参数

    我想用命令来实现文本框中的KeyDown事件 我想让命令能够识别哪个键输入 例如 KeyEventArgs 在 KeyDown Event 中执行操作并执行其他一些操作 所以我想将命令参数传递给ReactiveCommand 就像Event
  • Python selenium:DevTools 监听 ws://127.0.0.1

    今天 当我使用 chromedriver 运行 selenium 时 我在控制台上收到此消息 我该如何抑制这种情况 DevTools listening on ws 127 0 0 1 12740 devtools browser 9710
  • 更改 Integration Services 项目中的 .NET Framework

    在 Visual Studio 2013 中创建新的 Integration Services 项目时 我可以选择要定位的 NET 框架 如何查看现有项目所针对的 NET 框架并可能对其进行更改 您需要打开脚本任务之一并单击 编辑脚本 按钮
  • 如何在 R 中按下传单弹出窗口时创建事件?

    当我单击传单多边形时 我想让 tabPanel 变为闪亮 我对如何做到这一点有一些想法 但我找不到实现它们所需的信息 我在选项卡面板中有传单 但我想在单击多边形时切换到另一个选项卡 leaflet llmap gt addTiles gt
  • 使用 cmake 构建项目后如何运行 ctest

    我希望每次成功构建项目时都启动测试 如果某些测试被破坏 我希望我的构建也被破坏 默认情况下 我需要通过运行来手动运行测试ctest命令 CTest 实际上可以构建项目 但我使用调用的 IDEmake建立资源 和make不运行测试 我将此命令
  • php 7 无法初始化 sqlsrv

    我搜索了一整天 寻找 php 7 VC14 x64 Thread Safe 上 sqlsrv dll 的解决方案 但没有找到解决方案 有没有人解决这个问题 04 Oct 2015 19 48 05 UTC PHP Warning PHP S
  • UNNotificationServiceExtension:内存限制?

    我正在尝试实现 UNNotificationServiceExtension 但我的代码似乎经常失败 只需说明 Program ended with exit code 0 我正在尝试在扩展中使用 FMDB Sqlite3 模块 似乎我可能
  • 诊断 SQL Server 2005 中的死锁

    我们在 Stack Overflow SQL Server 2005 数据库中发现了一些有害但罕见的死锁情况 我附加了分析器 使用设置了跟踪配置文件这篇关于解决死锁问题的优秀文章 http www simple talk com sql l
  • 如何仅将缩进序列化应用于某些属性?

    我想以人类可读的方式将 NET 对象序列化为 JSON 但我希望对对象的属性或数组的元素是否最终位于自己的一行上有更多的控制 目前我正在使用 JSON NETJsonConvert SerializeObject object Format
  • 如何改变字典中的数组?

    我在操场上尝试过以下操作 var d1 String String d1 a String var a1 d1 a a1 append s1 println d1 输出是 a 我希望 a s1 改变字典中数组的正确方法是什么 在 swift
  • C++:不同翻译单元中具有相同名称的不同类

    考虑以下示例 usedclass1 hpp include
  • pmap 和线程数

    user gt Runtime getRuntime availableProcessors 2 并评估这个例子 http clojuredocs org clojure core clojure core pmap example 684
  • “PKIX 路径构建失败”和“无法找到请求目标的有效证书路径”

    我正在尝试使用 twitter4j 库为我的 java 项目获取推文 该项目在幕后使用java net HttpURLConnection 如堆栈跟踪中所示 第一次运行时 我收到有关证书的错误sun security validator V
  • PyQt:QFileSystemModel 复选框过滤器

    我正在尝试使用 python pyqt 创建一个实用程序来从QFileSystemModel 仅包括已检查的项目 现在我想要控制QFileSystemModel使用文件名 文件类型 文件大小进行过滤的复选框 我如何勾选 取消勾选QFileS
  • MediatR 和 SimpleInjector 的依赖范围问题

    我一直在使用中介者模式和 CQRS 进行实验MediatR https github com jbogard MediatR使用实体框架进行数据访问的 WinForms 应用程序中的库 该应用程序用于批次制造工厂 允许用户查看活动批次和已完
  • 有没有办法在没有样式组件的情况下为整个反应应用程序设置默认字体系列?

    我正在寻找一种方法来设置整个反应应用程序的默认字体系列 但所有结果 包都指向反应本机 对于React 有没有一种方法可以默认全局字体设置 而无需在每个CSS中指定font family 谢谢 如果我正确理解你的问题 应该这样做 import
  • C代码运行速度更快吗?

    从 Objective C 调用 C 代码是否有任何性能提升 我在某处读到 与使用函数调用的其他语言相比 消息传递速度较慢 那么 如果我从 Objective C 代码调用 C 函数 我是否可以避免消息传递开销 在优化性能时 是否建议使用
  • 如何在 Ubuntu 20.04 中安装 Python2.7 的 pip

    有什么方法可以为 Python2 7 安装 pip 吗 我可以通过安装 python2 7 sudo apt install python2 minimal 我尝试为此安装 pip sudo apt install python pip p
  • 为什么我的 JQuery .ajax 请求没有并行发出?

    我正在尝试使用 jQuery 并行发出两个 ajax 请求 如下所示 var sources source1 source2 sources each function var source this ajax async true typ
  • 是否可以使用 np 数组作为 h5py 数据集中的索引?

    我需要将多个数据集 每个数据集包含在一个单独的文件中 合并到属于最终文件的另一个数据集中 当部分数据集中的数据被复制到最终数据集中时 它们的顺序不会保留 部分数据集中的数据通过索引 映射 到最终数据集中 我创建了两个列表 final ind