问题标签 [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.
python - 在 Mac OS X 10.6.3 中安装 h5py
我正在尝试在 Mac OS X 10.6.3 中安装 h5py。
首先我安装了 HDF5 1.8,它使用了以下命令:
然后安装 h5py:
然后我得到了错误:
我刚刚更新了我的 Xcode,我不知道这是否是因为我的 gcc 的默认设置。如果是这样,我怎样才能摆脱这个错误?
谢谢。
python - 将 h5py 数据集输出到文本的快速方法是什么?
我正在使用 h5py python 包读取 HDF5 格式的文件。(例如 somefile.h5) 我想将数据集的内容写入文本文件。
比如我想创建一个文本文件,内容如下:1,20,31,75,142,324,78,12,3,90,8,21,1
我可以使用以下代码访问 python 中的数据集:
我天真的方法太慢了,因为我的数据集有超过 20000 个条目:
有没有更快的方法将其写入文件?也许我可以将数据集转换为 NumPy 数组甚至 Python 列表,然后使用一些文件编写工具?
(我可以在写入文件之前尝试将值连接成一个更大的字符串,但我希望有一些更优雅的东西)
python - 有使用 h5py 在 Python 中对大数据进行分析工作的经验吗?
我做了很多统计工作,并使用 Python 作为我的主要语言。虽然我使用的一些数据集可能占用 20GB 的内存,这使得使用 numpy、scipy 和 PyIMSL 中的内存函数对它们进行操作几乎是不可能的。统计分析语言 SAS 在这里有一个很大的优势,它可以对来自硬盘的数据进行操作,而不是严格的内存处理。但是,我想避免在 SAS 中编写大量代码(出于各种原因),因此我试图确定我对 Python 有哪些选择(除了购买更多的硬件和内存)。
我应该澄清,像 map-reduce 这样的方法对我的大部分工作没有帮助,因为我需要对完整的数据集进行操作(例如计算分位数或拟合逻辑回归模型)。
最近我开始使用h5py并认为它是我发现的最好的选择,它允许 Python 像 SAS 一样运行并操作来自磁盘的数据(通过 hdf5 文件),同时仍然能够利用 numpy/scipy/matplotlib 等。我想知道是否有人有在类似环境中使用 Python 和 h5py 的经验以及他们发现了什么。有没有人能够在迄今为止由 SAS 主导的“大数据”设置中使用 Python?
编辑:购买更多硬件/内存肯定会有所帮助,但从 IT 的角度来看,当 Python(或 R 或 MATLAB 等)需要将数据保存在内存中时,我很难将 Python 卖给需要分析大量数据集的组织. SAS 在这方面继续拥有强大的卖点,因为虽然基于磁盘的分析可能较慢,但您可以自信地处理庞大的数据集。因此,我希望 Stackoverflow-ers 可以帮助我弄清楚如何降低使用 Python 作为主要大数据分析语言的感知风险。
python - 如何扩展 h5py 以便我可以访问 hdf5 文件中的数据?
我有一个小的 python 程序,它使用 h5py 模块创建一个 hdf5 文件。我想编写一个 python 模块来处理 hdf5 文件中的数据。我怎么能那样做?
更具体地说,我可以将 numpy 数组设置为 PyArrayObject 并使用 PyArg_ParseTuple 读取它们。这样,我可以在编写 python 模块时从 numpy 数组中读取元素。如何读取 hdf5 文件以便我可以访问单个元素?
更新:感谢以下答案。我需要从 C 而不是从 Python 读取 hdf5 文件-我知道该怎么做。例如:
现在我有一个名为 '\tmp\tmp.h5' 的 hdf5 文件。我需要做的是使用 C(而不是 python)从 hdf5 文件中读取单个数组元素,以便我可以对这些元素做一些事情。这显示了如何扩展 numpy 数组。如何扩展hdf5?
编辑:语法
python - 用 Python 编写 HDF5 文件的最快方法是什么?
给定一个包含混合文本/数字的大型(10 GB)CSV 文件,在保持内存使用合理的同时,创建具有相同内容的 HDF5 文件的最快方法是什么?
如果可能的话,我想使用该h5py
模块。
在下面的玩具示例中,我发现了一种将数据写入 HDF5 的非常慢且非常快的方法。以 10,000 行左右的数据块写入 HDF5 是否是最佳实践?或者有没有更好的方法将大量数据写入这样的文件?
python - 在 OS X 上安装 h5py
我花了一天时间试图让h5py
python 模块工作,但没有成功。我已经安装了 HDF5 共享库,按照我在网上可以找到的说明进行操作。但它不起作用,下面是我在尝试将模块导入 python 时收到的错误消息。我也尝试通过 MacPorts 安装,但它再次无法正常工作。
我正在使用 Python27 32 位(对于另一个模块也有,因此安装了 i386 HDF5 库......如果是这样的话?)
非常欢迎任何帮助!
谢谢 !
python - 使用 h5py 对象作为实例变量的令人费解的赋值行为
我正在使用 h5py 访问 HDF5 文件并将 h5py 文件对象存储在一个类中。但是我在尝试用一个新的重新分配一个封闭的 h5py 文件实例变量时遇到了一些奇怪的行为:
输出:
尝试使用新打开的 h5py File 对象更新实例变量似乎以某种方式影响了对象的状态,将其关闭。不管 h5py 方面的实现如何,从我对 Python 语言的理解来看,我看不出这种行为有什么意义(即没有重载赋值运算符)。
此示例使用 Python 2.6.5 和 h5py 1.3.0 运行。如果您想尝试此示例但没有 HDF5 文件,您可以将文件访问模式从“r”更改为“a”。
python - Python HDF5 H5Py 问题打开多个文件
我使用 64 位版本的 Enthought Python 来处理跨多个 HDF5 文件的数据。我在 64 位 Windows 上使用 h5py 版本 1.3.1 (HDF5 1.8.4)。
我有一个对象,它为我的特定数据层次结构提供了一个方便的接口,但是单独测试 h5py.File(fname, 'r') 会产生相同的结果。我正在遍历一个长列表(一次约 100 个文件)并尝试从文件中提取特定的信息。我遇到的问题是我从几个文件中获取了相同的信息!我的循环看起来像:
当我使用 hdfview 之类的东西检查文件时,我知道内部结构不同。但是,我得到的 csv 似乎表明所有文件都包含相同的数据。有没有人见过这种行为?有什么建议可以让我开始调试这个问题吗?
python - 用于 Python 的 HDF5:高级与低级接口。h5py
我一直在使用C
和处理 HDF5 文件Matlab
,两者都使用相同的方式读取和写入数据集:
- 打开文件
h5f
- 打开数据集
h5d
- 选择空间
h5s
等等...
但是现在我正在使用Python
它,并且通过它的h5py
库,我看到它有两种管理 HDF5 的方法:高级接口和低级接口。而对于前者,从文件的单个变量中获取信息所需的代码行数更少。
使用高级接口时是否有明显的性能损失?
例如,当处理一个包含许多变量的文件时,我们必须只读取其中一个。