Skip to main content

Helps h5py to load and dump dictionaries containing types supported by h5py.

Project description

hdfdict helps h5py to dump and load python dictionaries

Build Status

Coverage Status

If you have a hierarchical data structure of numpy arrays in a dictionary for example, you can use this tool to save this dictionary into a h5py File() or Group() and load it again. This tool just maps the hdf Groups to dict keys and the Datset to dict values. Only types supported by h5py can be used. The dicitonary-keys need to be strings until now.

A lazy loading option is activated per default. So big h5 files are not loaded at once. Instead a dataset gets only loaded if it is accessed from the LazyHdfDict instance.

Example

import hdfdict
import numpy as np


d = {
    'a': np.random.randn(10),
    'b': [1, 2, 3],
    'c': 'Hallo',
    'd': np.array(['a', 'b']).astype('S'),
    'e': True,
    'f': (True, False),
}
fname = 'test_hdfdict.h5'
hdfdict.dump(d, fname)
res = hdfdict.load(fname)

print(res)

Output: {'a': <HDF5 dataset "a": shape (10,), type "<f8">, 'b': <HDF5 dataset "b": shape (3,), type "<i8">, 'c': <HDF5 dataset "c": shape (), type "|O">, 'd': <HDF5 dataset "d": shape (2,), type "|S1">, 'e': <HDF5 dataset "e": shape (), type "|b1">, 'f': <HDF5 dataset "f": shape (2,), type "|b1">}

This are all lazy loding fields in the result res. Just call res.unlazy() or dict(res) to get all fields loaded. If you only want to load specific fields, just use item access e.g. res['a'] so only field 'a' will be loaded from the file.

print(dict(res))`

Output: {'a': array([-0.47666824, 0.11787749, 0.51405835, -1.49557787, -0.33617182, -0.22381693, 0.25966526, 0.58160661, 0.17019176, 1.3167669 ]), 'b': array([1, 2, 3]), 'c': 'Hallo', 'd': array([b'a', b'b'], dtype='|S1'), 'e': True, 'f': array([ True, False])}

Installation

  • pip install hdfdict
  • poetry install hdfdict
  • git clone https://github.com/SiggiGue/hdfdict.git and python hdfdict/setup.py install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hdfdict-0.3.1.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

hdfdict-0.3.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file hdfdict-0.3.1.tar.gz.

File metadata

  • Download URL: hdfdict-0.3.1.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/5.0.0-25-generic

File hashes

Hashes for hdfdict-0.3.1.tar.gz
Algorithm Hash digest
SHA256 916209f4751b6b1c99d9a2194233fa142353e170b8601e480d431add65960f85
MD5 7af3e33870f24488ffa0f54b3fcffed3
BLAKE2b-256 ed6e35198b32082cc8b9164b94d481fb08347abcca66441e3f0d09361a13d8e2

See more details on using hashes here.

File details

Details for the file hdfdict-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: hdfdict-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/5.0.0-25-generic

File hashes

Hashes for hdfdict-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e875e4fefe767af9b23bf69b593683c2cbba7692e9baf4621333bdb50aecfa2b
MD5 5469ea164e4f21aea3f51eb207493831
BLAKE2b-256 ab29bdd444399c839b24d837937d8ca255b1b95a3463e58c03abe04890b0717b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page