HDF5 中的稀疏数组支持

2024-06-24

我需要以某种方式在磁盘上存储 512^3 阵列,并且我目前正在使用 HDF5。由于阵列稀疏,大量磁盘空间被浪费。

HDF5 是否提供对稀疏数组的支持?


一种解决方法是使用以下内容创建数据集compression option http://docs.h5py.org/en/latest/high/dataset.html#dataset-compression。例如,在 Python 中使用h5py http://www.h5py.org/:

import h5py
f = h5py.File('my.h5', 'w')
d = f.create_dataset('a', dtype='f', shape=(512, 512, 512), fillvalue=-999.,
                     compression='gzip', compression_opts=9)
d[3, 4, 5] = 6
f.close()

生成的文件大小为 4.5 KB。如果不进行压缩,同一文件的大小约为 512 MB。这是 99.999% 的压缩,因为大部分数据都是-999.(管他呢fillvalue你要)。


通过设置使用 C++ HDF5 API 可以实现等效的效果H5::DSetCreatPropList::setDeflate https://support.hdfgroup.org/HDF5/doc/cpplus_RM/class_h5_1_1_d_set_creat_prop_list.html#afce63c8d8c410e4a52b25b469fea1859到 9,有一个示例显示在h5group.cpp https://support.hdfgroup.org/HDF5/doc/cpplus_RM/h5group_8cpp-example.html.

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

HDF5 中的稀疏数组支持 的相关文章

  • HDF5 存储开销

    我正在将大量小数据集写入 HDF5 文件 生成的文件大小约为我所输入数据的简单制表所期望的文件大小的 10 倍 我的数据按层次结构组织如下 group 0 gt subgroup 0 gt dataset dimensions 100 x
  • R构造稀疏矩阵

    我正在阅读 R 中 Matrix 包的说明 但我无法理解p函数中的参数 sparseMatrix i ep j ep p x dims dimnames symmetric FALSE index1 TRUE giveCsparse TRU
  • javascript排序稀疏数组保留索引

    对稀疏数组进行排序并使元素保持相同索引的最佳方法是什么 例如 a 0 3 a 1 2 a 2 6 a 7 4 a 8 5 我想排序后有 a 0 2 a 1 3 a 2 4 a 7 5 a 8 6 这是一种方法 它将定义的数组元素复制到新数组
  • 用Python计算稀疏矩阵的N个最小特征值

    我想在Python中找到稀疏矩阵的N个最小特征值 我尝试过使用scipy sparse linalg eigen arpack包 但计算最小特征值的速度非常慢 我在某处读到有一个移位反转模式 但是当我尝试使用它时 我收到一条错误消息 告诉我
  • pyspark中的稀疏向量RDD

    我一直在使用 mllib 的功能通过 Python Pyspark 实现此处描述的 TF IDF 方法 https spark apache org docs 1 3 0 mllib feature extraction html http
  • Pandas 无法读取使用 h5py 创建的 hdf5 文件

    当我尝试读取使用 h5py 创建的 HDF5 格式文件时 出现 pandas 错误 我想知道我是否只是做错了什么 import h5py import numpy as np import pandas as pd h5 file h5py
  • scipy.sparse.hstack(([1], [2])) ->“ValueError:块必须是二维的”。为什么?

    scipy sparse hstack 1 2 and scipy sparse hstack 1 2 工作得很好 但不是scipy sparse hstack 1 2 为什么会这样呢 这是我的系统上发生的情况的痕迹 C Anaconda
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • 使用 python 生成器高效创建 scipy.lil_matrix

    我有一个生成单一维度的生成器numpy arrays 的长度相同 我想要一个包含该数据的稀疏矩阵 行的生成顺序与我希望它们出现在最终矩阵中的顺序相同 csr矩阵优于lil矩阵 但我认为后者在我描述的场景中更容易构建 假设row gen是一个
  • NumPy 和 SciPy - .todense() 和 .toarray() 之间的区别

    我想知道使用是否有什么区别 优点 缺点 toarray vs todense 在稀疏 NumPy 数组上 例如 import scipy as sp import numpy as np sparse m sp sparse bsr mat
  • 保存为 HDF5 的图像未着色

    我目前正在开发一个将文本文件和 jpg 图像转换为 HDF5 格式的程序 用HDFView 3 0打开 似乎图像仅以灰度保存 hdf h5py File Sample h5 img Image open Image jpg data np
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • Maven项目中的HDF5

    我正在尝试将 hdf hdf5lib H5 导入到 NetBeans 中的 Maven 项目中 它有这个作为导入行 import hdf hdf5lib H5 正如这里所建议的 https support hdfgroup org prod
  • h5py安装后出现错误[重复]

    这个问题在这里已经有答案了 可能的重复 在 OS X 上安装 h5py https stackoverflow com questions 6988010 installing h5py on os x 我正在尝试让 h5py 在我的 OS
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 使用 pytables,哪个更有效:scipy.sparse 还是 numpy 稠密矩阵?

    使用时pytables 没有支持 据我所知 scipy sparse矩阵格式 因此要存储矩阵我必须进行一些转换 例如 def store sparse matrix self grp1 self getFileHandle createGr
  • 有效积累稀疏 scipy 矩阵的集合

    我有一个 O N NxN 的集合scipy sparse csr matrix 每个稀疏矩阵都有 N 个元素集 我想将所有这些矩阵加在一起以获得一个常规的 NxN numpy 数组 N 约为 1000 矩阵内非零元素的排列使得所得总和肯定不
  • 删除或更新 HDF5 中的数据集?

    我想以编程方式更改与 HDF5 文件中的数据集关联的数据 我似乎找不到一种方法来按名称删除数据集 允许我使用修改后的数据再次添加它 或按名称更新数据集 我正在使用 HDF5 1 6 x 的 C API 但指向任何 HDF5 API 的指针都
  • HDF5 中的稀疏数组支持

    我需要以某种方式在磁盘上存储 512 3 阵列 并且我目前正在使用 HDF5 由于阵列稀疏 大量磁盘空间被浪费 HDF5 是否提供对稀疏数组的支持 一种解决方法是使用以下内容创建数据集compression option http docs
  • 错误:超出了程序允许的最大变量大小。使用 sub2ind 时

    请建议如何解决这个问题 nNodes 50400 adj sparse nNodes nNodes adj sub2ind nNodes nNodes ind ind 1 1 ind is a vector of indices Maxim

随机推荐