Skip to main content

Sparse matrix HTML and LaTeX rendering with Jupyter integration.

Project description

tests codecov PyPI version

MatRepr

Sparse matrix HTML and LaTeX representation with Jupyter integration. For Spy plots see MatSpy.

Supports:

  • scipy.sparse sparse matrices and arrays like csr_matrix and coo_array.
  • python-graphblas sparse matrices and vectors
  • list, tuple
pip install matrepr

Purpose

Turn this opaque string:

<1000x1000 sparse matrix of type '<class 'numpy.float64'>'
	with 212345 stored elements in COOrdinate format>

To one of these:

HTML

HTML

mdisplay(A), or simply A if Jupyter integration enabled. Use to_html() for raw HTML string.

LaTeX

LaTeX

mdisplay(A, 'latex'), or simply A if LaTeX version of Jupyter integration enabled. Use to_latex() for raw LaTeX string.

Quick Start

from matrepr import mdisplay
  • to_html(A): Format A as an HTML table. Returns string.
  • to_latex(A): Format A as a LaTeX matrix. Returns string.
  • mdisplay(A): Displays the output of to_html or to_latex in Jupyter.

Jupyter Integration

MatRepr can integrate with Jupyter's formatter to automatically format supported sparse matrix types. Simply import matrepr.jupyter to register MatRepr's formatter with Jupyter.

import matrepr.jupyter

Jupyter Integration

If you prefer LaTeX:

import matrepr.jupyter_latex

Arguments

All methods take the same arguments. Apart from the matrix itself:

  • title: string label. If True, then a matrix description is auto generated that contains matrix shape, number and type of nonzeros, etc.
  • indices: Whether to show matrix indices.
  • max_rows, max_rows: size of table. Matrices larger than this are truncated with ellipses.
  • precision: floating-point precision
  • num_after_dots: How many rows/columns to show from the end of the matrix if the entire matrix does not fit.

Overriding defaults

matrepr.params contains the default values for all arguments.

For example, to always disable the title, disable indices, and only show the top-left part of the matrix:

matrepr.params.title = False
matrepr.params.indices = False
matrepr.params.num_after_dots = 0

How does it work?

Each package that MatRepr supports implements two classes:

  • Driver: Declares what types are supported and supplies an adapter.
    • get_supported_types: This declares what types are supported, as strings to avoid unnecessary imports.
    • adapt(A): Returns a MatrixAdapter for a matrix that this driver supports.
  • MatrixAdapter. A common interface for extracting relevant matrix data. MatRepr supports three kinds:
    • MatrixAdapterRow: is able to efficiently read a selected row.
    • MatrixAdapterCol: is able to efficiently read a selected column.
    • MatrixAdapterCoo: is able to extract a portion of the matrix as tuples.

See matrepr/adapters for details.

You may use matspy.register to register a Driver for your own matrix class.

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

matrepr-0.4.2.tar.gz (16.3 kB view hashes)

Uploaded Source

Built Distribution

matrepr-0.4.2-py3-none-any.whl (17.8 kB view hashes)

Uploaded Python 3

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