Skip to main content

Save and load matrices in the dolomite framework

Project description

Project generated with PyScaffold

Read and save matrices in Python

Introduction

The dolomite-matrix package is the Python counterpart to the alabaster.matrix R package, providing methods for saving/reading arrays and matrices within the dolomite framework. Dense arrays are stored in the usual HDF5 dataset, while sparse matrices are saved inside a HDF5 file in compressed sparse format.

Quick start

Let's save a dense matrix to a HDF5 file with some accompanying metadata:

import numpy
x = numpy.random.rand(1000, 200) 

import tempfile
dir = tempfile.mkdtemp()

import dolomite_base
import dolomite_matrix
meta = dolomite_base.stage_object(x, dir, "whee")
dolomite_base.write_metadata(meta, dir)
print(meta["path"])
## whee/array.h5

Now we can transfer the directory and reload the matrix in a new session. This produces a Hdf5DenseArray from the filebackedarray package.

import dolomite_base
info = dolomite_base.acquire_metadata(dir, "whee/array.h5")
obj = dolomite_base.load_object(info, dir)
## <1000 x 200> Hdf5DenseArray object of type 'float64'
## [[0.58444226, 0.82595149, 0.7214525 , ..., 0.32493652, 0.58206044,
##   0.73770346],
##  [0.96398317, 0.73200292, 0.16410134, ..., 0.31626547, 0.11499628,
##   0.19768697],
##  [0.82350911, 0.48012452, 0.65221052, ..., 0.94989611, 0.15422992,
##   0.77173718],
##  ...,
##  [0.71715436, 0.19266116, 0.52316388, ..., 0.23104537, 0.935654  ,
##   0.51663007],
##  [0.38585049, 0.26709808, 0.70358993, ..., 0.91822795, 0.66144925,
##   0.42465112],
##  [0.08535589, 0.00144712, 0.51411921, ..., 0.84546122, 0.35001404,
##   0.53644868]]

Sparse matrices

We can also save and load a sparse matrix from a HDF5 file:

import scipy 
import numpy
x = scipy.sparse.random(1000, 200, 0.2, dtype=numpy.int16, format="csc")

import tempfile
dir = tempfile.mkdtemp()

import dolomite_base
import dolomite_matrix
meta = dolomite_base.stage_object(x, dir, "whee")
dolomite_base.write_metadata(meta, dir)
print(meta["path"])
## whee/matrix.h5

And again, loading it back in a new session. This produces a Hdf5CompressedSparseMatrix from the filebackedarray package.

import dolomite_base
info = dolomite_base.acquire_metadata(dir, "whee/matrix.h5")
obj = dolomite_base.load_object(info, dir)
## <1000 x 200> sparse Hdf5CompressedSparseMatrix object of type 'int16'
## [[     0,      0, -28638, ...,      0,      0,  26194],
##  [     0,      0,      0, ...,      0, -30829,      0],
##  [     0,      0,      0, ...,      0,      0,      0],
##  ...,
##  [ 10895,      0,      0, ...,      0,      0,      0],
##  [     0,  32539,      0, ...,      0,   2780, -12106],
##  [     0,      0,      0, ...,   1452,      0, -26314]]

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

dolomite-matrix-0.1.0a1.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

dolomite_matrix-0.1.0a1-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file dolomite-matrix-0.1.0a1.tar.gz.

File metadata

  • Download URL: dolomite-matrix-0.1.0a1.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for dolomite-matrix-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 47573c3fe11e016abb8272d528d40bdb79b4b537c6b351d210e0a5a05434c538
MD5 c10773351db6a16e041b424da50e4a6a
BLAKE2b-256 6471f47a130a9f722e056c822cbe5bd08caba6aba0a74cd71577e8463886569d

See more details on using hashes here.

File details

Details for the file dolomite_matrix-0.1.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for dolomite_matrix-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 f207816b3e63fc9a35643e80fa9366e124925d19f08b68b42905cfed21f84b5f
MD5 94a73dbf2bb4ee0cc711a97035ce5208
BLAKE2b-256 7736abc44d0157e049a9c65dd4db7f925e047face8ca14a91fa734adce0e454f

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