Skip to main content

all your matrix representations belong here!

Project description

Project generated with PyScaffold

mattress

This project provides tatami matrix representations in Python.

Install

Package is published to PyPI

pip install mattress

Usage

Dense matrices

To convert a numpy dense matrix to tatami representation -

import numpy as np
from mattress import tatamize

x = np.random.rand(1000, 100)

tatamat = tatamize(y)

Methods

Methods are available to access the matrix by row, column

tatamat.row(0)
tatamat.column(1)

Also works if the matrix is row-major order.

x = np.ones((2, 3), order='F')
tatamat = tatamize(y)

Is your matrix sparse?

from scipy.sparse import rand
m = rand(3, 4, density=0.25, format="csr", random_state=42)
tatamat = tatamize(m)

Developer Notes

Steps to setup dependencies -

  • initialize git submodules in extern/tatami & extern/tatami_hdf5

First one needs to build the extern library, this would generate a shared object file to src/mattress/core-[*].so

python setup.py build_ext --inplace

For typical development workflows, run this for tests

python setup.py build_ext --inplace && tox

To rebuild the ctypes bindings with the wrap.py helper

wrap.py src/mattress/lib --py src/mattress/cpphelpers.py --cpp src/mattress/lib/bindings.cpp

Note

This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.

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

mattress-0.0.6.tar.gz (251.0 kB view hashes)

Uploaded Source

Built Distributions

mattress-0.0.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

mattress-0.0.6-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.6 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

mattress-0.0.6-cp311-cp311-musllinux_1_1_x86_64.whl (28.5 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

mattress-0.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mattress-0.0.6-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mattress-0.0.6-cp311-cp311-macosx_10_9_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

mattress-0.0.6-cp310-cp310-musllinux_1_1_x86_64.whl (28.5 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

mattress-0.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mattress-0.0.6-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mattress-0.0.6-cp310-cp310-macosx_10_9_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

mattress-0.0.6-cp39-cp39-musllinux_1_1_x86_64.whl (28.5 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

mattress-0.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mattress-0.0.6-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mattress-0.0.6-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

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