问题标签 [h5py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2603 浏览

python - 在 h5py 中存储空的 numpy 数组

我想将一些数据写入 HDF5 文件(因为我有大量数据集,并且被告知 HDF5 可以很好地处理这些事情)。

我有一个 Python 2.7 字典,其中包含一些值和一些 numpy 数组。我想做的只是将该字典转储到 HDF5 中。没有组或其他什么,只需将键值对放入 HDF5。

但是,使用 h5py,如果我将一个空数组(或列表)写入文件,我会得到:

我不敢相信 HDF5 不允许我将空数组放入其中。碰巧有时我的清单是空的。没办法。

我错过了什么?

谢谢 :-)

0 投票
1 回答
139 浏览

python - Windows 上的 h5py 安装无法打开 hdf5dll18.lib 和 hdf5_hldll.lib

下载hdf5-1.8.12-win32-vs10shared.zip并安装(将目录添加到 PATH)后,仍然没有 hdf5dll18.lib 和 hdf5_hldll.lib 可用。所以

python3 setup.py 安装

失败(python3 是我的重命名)。我的 h5py 来自 github。

解决方法:

将 hdf5.lib 和 hdf5_hl.lib 复制到 h5py 克隆的根目录并重命名为所需文件会有所帮助。

0 投票
3 回答
3568 浏览

python - 在 Matlab 中转置 Python 创建的 HDF5 数据集

我有一些在 Python 和 Matlab 之间共享的数据。我曾经通过将 NumPy 数组保存在 MATLAB 风格的 .mat 文件中来做到这一点,但我想切换到 HDF5 数据集。但是,我注意到一个有趣的功能:当我将 NumPy 数组保存在 HDF5 文件中(使用h5py)然后在 Matlab 中读取它(使用h5read)时,它最终会被转置。有什么我想念的吗?

Python代码:

Matlab代码:

0 投票
1 回答
4876 浏览

python - 对numpy数组进行二次采样?

我对 numpy 比较陌生,但已经开始使用它来读取和写入 h5 文件。我有图像数据,我已经计算了一些区域统计数据,将给定区域中的每个像素值读入 h5 文件。但是,我有很多像素值(可能是数千万),并且想要对这些数据进行二次采样,以便能够减少数据大小但保持数据的一般分布。

我想知道是否有一种简单的方法可以对数组的每 200 个值进行采样?

我会提出我已经拥有的代码,但我的代码只能读取我现有的数据——我完全不知道如何对它进行二次采样,所以到目前为止没有什么可显示的。

谢谢

0 投票
3 回答
13784 浏览

python - h5py:切片数组数据集的正确方法

我在这里有点困惑:

据我了解,h5py 的.value方法读取整个数据集并将其转储到一个数组中,这很慢且不鼓励(通常应替换为[()]. 正确的方法是使用 numpy-esque 切片。

但是,我得到了令人讨厌的结果(使用 h5py 2.2.1):

我想我的数据集很小,.value不会显着影响性能,但是第一个选项怎么会这么慢呢?这里的首选版本是什么?

谢谢!

更新 看来我不够清楚,对不起。我知道.value在切片时将整个数据集复制到内存中只检索适当的子部分。我想知道为什么在文件中切片比复制整个数组然后在内存中切片要慢。我一直认为 hdf5/h5py 是专门实现的,因此切片子部分总是最快的。

0 投票
2 回答
5710 浏览

python - 忽略/跳过 numpy 数组中的值?

我正在从 h5 文件中读取数据(准确地说是像素值),并使用 numpy 在直方图中绘制数据。在我的像素值数组中,我的无数据值为 99999(否则我的数据范围为 -40 到 20)。我根据手动设置的最小值和最大值(分别为 -40 和 20)创建直方图,因此无数据值不会显示在我的直方图中 - 这很好。但是,我想在我的数据上拟合一条正态曲线,为此我需要数据集的平均值和 SD。当我使用 numpy.mean 和 numpy.std 生成这些时,它包含无数据值,因此我的均值和 SD 值相差甚远,我随后的正常曲线也是如此。

本质上,有没有办法从数组生成平均值和标准差,忽略给定值(即我的无数据值:99999),或者将我的数组的值输出到没有无数据值的新数组?

谢谢

0 投票
1 回答
323 浏览

python-2.7 - 未知的驱动程序类型“mpio”

如果有人能指导我解决以下错误消息,我将不胜感激:

我使用 ubuntu 软件中心安装了 h5py。(我运行 h5cc -showconfig 并注意到并行 HDF5 已启用。)

我在带有 core 2 duo 的 macbook air 上运行,只为 ubuntu 13.04 的虚拟桌面启用了一个内核。

0 投票
1 回答
99 浏览

python - 处理许多小矩阵

我目前正在研究许多小型 6x6 矩阵:形状 A = (N, N, N, 6, 6)N约为500。我将这些矩阵存储在 Pytables ( http://www.pytables.org ) 的 HDF5 文件中。

我想对这些矩阵进行一些计算,比如求逆、转置、乘法等……这很容易,而N不是很大,例如numpy.linalg.inv(A)应该不用循环就可以解决问题。但在我的情况下,它工作得非常慢,有时我有记忆问题。

你能建议我一种更有效地做到这一点的方法吗?

0 投票
1 回答
1103 浏览

python - h5py 中的引用数组

我使用 h5py。我想在我的 HDF5 文件中有一个字符串(column1)和regional_reference(column2)的复合数据集。为此,我试图定义一个 numpy dtype 的 String 和 Reference。

但即使在此之前,我也未能定义 hdf5 区域引用的 numpy dtype 数组。

2和3情况下的错误如下,

0 投票
0 回答
1312 浏览

python - 如何在 HDF5 中保存 Python dtype('O')

根据此链接,h5py 不支持 NumPy 通用对象(“O”)数据类型,但我真的需要一种方法来存储我的对象。我已经设计了我的文件并且已经在其中存储了其他数据类型并且不想移动到其他数据结构。有人知道将这种数据类型存储到 h5py 中的技巧吗?目前我正在使用这行代码,这给了我一个错误currentgroup.create_dataset("class", data=allClass)