array_to_latex icon indicating copy to clipboard operation
array_to_latex copied to clipboard

Convert NumPy/SciPy arrays and Pandas Dataframes to formatted LaTeX arrays

.. image:: https://badge.fury.io/py/array-to-latex.png/ :target: http://badge.fury.io/py/array-to-latex

.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg :target: https://saythanks.io/to/josephcslater

.. image:: http://pepy.tech/badge/array-to-latex :target: http://pepy.tech/project/array-to-latex :alt: PyPi Download stats

.. image:: https://mybinder.org/badge_logo.svg :target: https://mybinder.org/v2/gh/josephcslater/array_to_latex/master?filepath=Examples.ipynb

The module array_to_latex converts a NumPy/SciPy array or Pandas Numerical DataFrame to a LaTeX array or table using Python 3.x style_ formatting of the result or a format usable for plotting within LaTeX using pgfplots. Note that as of 0.83 it does add the column formatting arguments (for example, {ccc...}) when the user chooses to use array. I'm happy to have someone create a better solution but this at least makes a copied array immediately usable. I prefer bmatrix or similar. `

Play with it on mybinder.org_!

A NumPy-focused re-envisioned converter based, in part, on this is numpyarray_to_latex <https://github.com/benmaier/numpyarray_to_latex>_. Also, available pip install. It incorporates more sophisticated "sub" markup capabilities. Check it out!

Recent updates follow, with a more complete list towards the end of this document. If you don't see the current version in this list it's likely because I (again) forgot to update it when pushing out a new version. Please see the readme_ on GitHub.

| 0.81: Bug fixes in requirements and to_clp | 0.82: Raise ImportError exception when incorrect datatype used. | 0.83: Now puts a default format in when returning as an array object. | 0.90: Add coords format for use in plotting within LaTeX using pgfplots. | 0.91: Improve the output for scientific e notation. | 0.92: Allow np.array consisting of strings to be converted (Thanks to Tesla2000)

Install using pip install --user array_to_latex from your command prompt, not the Python prompt.

Please read the help. It explains all options. To try it, see the online mybinder.org demo <https://mybinder.org/v2/gh/josephcslater/array_to_latex/master?filepath=Examples.ipynb>_. It documents illustrates application to numerical Pandas DataFrames.

.. code:: python

import numpy as np
import array_to_latex as a2l
A = np.array([[1.23456, 23.45678],[456.23, 8.239521]])
a2l.to_ltx(A, frmt = '{:6.2f}', arraytype = 'array')

will print the LaTeX code to your output.

.. code:: python

import numpy as np
import array_to_latex as a2l
A = np.array([[1.23456, 23.45678],[456.23, 8.239521]])
latex_code = a2l.to_ltx(A, frmt = '{:6.2f}', arraytype = 'bmatrix', print_out=False)

will put the LaTeX code into variable latex_code.

.. code:: python

import numpy as np
import array_to_latex as a2l
A = np.array([[1.23456, 23.45678],[456.23, 8.239521]])
a2l.to_clp(A, frmt = '{:6.2f}', arraytype = 'bmatrix')

will put the array onto your clipboard.

If you will be using the same conversion over and over, you can define your own by using a lambda function:

.. code:: python

to_tex = lambda A : a2l.to_ltx(A, frmt = '{:6.2f}', arraytype = 'bmatrix', mathform=True)
to_tex(A)

so you can now use your function to_tex repeatedly with your specified settings. More detailed information on usage is in the help.

.. code:: python

import array_to_latex as a2l
help(a2l.to_ltx)

Interesting alternative approaches are np_array_to_latex <https://github.com/bbercovici/np_array_to_latex>_ and tab2latex (convert numpy array to longtable file) <https://pypi.org/project/tab2latex/>_.

Like this module, buy me a coffee! <https://www.buymeacoffee.com/s6BCSuEiU>_.

| New in 0.37: Now handles complex arrays. | New in 0.38: Aligns columns neatly. | 0.40: Critical upgrade- 0.37-0.38 formatted incorrectly. | 0.41: Critical upgrade- 0.37-0.40 formatted incorrectly. | New in 0.43: Now handles 1-D Arrays. See new option row | New in 0.50: Now works with Pandas DataFrames | 0.51: Bug fix- remove extra blank lines in DataFrame tabular output | 0.52: A few documentation typos fixed. No code changed. | 0.60: Now handles strings in Pandas Dataframes. Fixes bug in exponentials and handling of exponentials. Please report errors! | 0.61: Minor documentation improvements. No code changed. | 0.70: Added mathform. When set to True (default), returns 10 to superscript form. | 0.71: Line breaks broke readme.rst on pypi. No code change. | 0.72: Line breaks broke readme.rst on pypi. No code change. | 0.73: pypi won't handle mathjax. It makes me sad. No code change. | 0.74: Not released | 0.75: output improvements (short-lived release) | 0.76: Printing made better, allows outputs, added print_out | boolean to turn off printing | 0.80: Return to previous interface while still enabling returned | LaTeX string. | 0.81: Bug fixes in requirements and to_clp | 0.82: Raise ImportError exception when incorrect datatype used. | 0.83: Add formatting defaults when using array versus bmatrix, etc. | 0.90: Add coords format for use in plotting within LaTeX using pgfplots. | 0.91: Improve the output for scientific e notation. | 0.92: Allow np.array consisting of strings to be converted (Thanks to Tesla2000)

.. _Python 3.x style: https://docs.python.org/3.7/library/string.html .. _mybinder.org: https://mybinder.org/v2/gh/josephcslater/array_to_latex/master?filepath=Examples.ipynb .. _readme: https://github.com/josephcslater/array_to_latex/blob/master/README.rst