Skip to content

josephcslater/array_to_latex

Repository files navigation

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

https://badge.fury.io/py/array-to-latex.png/ PyPi Download stats

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. 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. It documents illustrates application to numerical Pandas DataFrames.

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.

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.

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:

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.

import array_to_latex as a2l
help(a2l.to_ltx)

Interesting alternative approaches are np_array_to_latex and tab2latex (convert numpy array to longtable file).

Like this module, buy me a coffee!.

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)