numpyarray_to_latex¶
About¶
Format numpy arrays as LaTeX arrays. This is a fork of array_to_latex by @josephcslater.
repository: https://github.com/benmaier/numpyarray_to_latex/
documentation: http://numpyarray-to-latex.readthedocs.io/
>>> import numpy as np
>>> from numpyarray_to_latex import to_ltx
>>> tex = to_ltx(np.random.randn(2,2))
>>> print(tex)
\\left(
\\begin{array}
2.0156 & -0.3230\\\\
0.0477 & 0.0184
\\end{array}
\\right)
Install¶
pip install numpyarray_to_latex
numpyarray_to_latex
was developed and tested for
Python 3.6
Python 3.7
Python 3.8
Python 3.9
Python 3.10
So far, the package's functionality was tested on Mac OS X and CentOS only.
Dependencies¶
numpyarray_to_latex
directly depends on the following packages which
will be installed by pip
during the installation process
numpy>=1.0
Documentation¶
The full documentation is available at numpyarray-to-latex.readthedocs.io.
Examples¶
Default Python¶
import numpy as np
from numpyarray_to_latex.jupyter import to_jup
from numpyarray_to_latex import to_ltx
tex = to_ltx(np.random.randn(2,2))
print(tex)
\\left(
\\begin{array}
2.0156 & -0.3230\\\\
0.0477 & 0.0184
\\end{array}
\\right)
print(to_ltx(np.random.randn(2,2),
latexarraytype='array',
is_row_vector=False,
mark_color='yellow',
mark_elements=[(1,1)],
brackets='(]',
separate_columns=[0,1],
separate_rows=[0,1],))
\\left(
\\begin{array}{c|c}
0.3498 & 0.4393\\\\
\\hline
-0.8521 & \\colorbox{yellow}{$-0.6412$}
\\end{array}
\\right]
In Jupyter Notebooks¶
import numpy as np
from numpyarray_to_latex.jupyter import to_jup
to_jup(np.random.randn(10,10),
mark_elements=[(1,1),(2,3),(7,0)],
separate_columns=[0,1],
separate_rows=[0,1],
)

to_jup(np.random.randn(2),
mark_elements=[1,],
separate_columns=[0,1],
separate_rows=[0,1],
)

to_jup(np.random.randn(2),
is_row_vector=False,
mark_elements=[1,],
separate_columns=[0,1],
separate_rows=[0,1],
mark_color='yellow',
brackets='(]',
)

to_jup(np.random.randn(2,2),
latexarraytype='Vmatrix',
is_row_vector=False,
separate_rows=[0,1],
)

to_jup(np.random.randn(2,2)+1j*np.random.randn(2,2),
mark_elements=[(0,1)],
)

to_jup(np.random.randn(2,2)+1j*np.random.randn(2,2),
mark_elements=[(0,1)],
fmt='{:4.2e}',
)

Changelog¶
Changes are logged in a separate file.
License¶
This project is licensed under the MIT License. Note that this excludes any images/pictures/figures shown here or in the documentation.
Contributing¶
If you want to contribute to this project, please make sure to read the code of conduct and the contributing guidelines. In case you're wondering about what to contribute, we're always collecting ideas of what we want to implement next in the outlook notes.
Dev notes¶
Fork this repository, clone it, and install it in dev mode.
git clone git@github.com:YOURUSERNAME/numpyarray_to_latex.git
make
If you want to upload to PyPI, first convert the new README.md
to
README.rst
make readme
It will give you warnings about bad .rst
-syntax. Fix those errors in
README.rst
. Then wrap the whole thing
make pypi
It will probably give you more warnings about .rst
-syntax. Fix those
until the warnings disappear. Then do
make upload
Pure Python¶
import numpy as np
from numpyarray_to_latex.jupyter import to_jup
from numpyarray_to_latex import to_ltx
tex = to_ltx(np.random.randn(2,2))
print(tex)
left( begin{array} 2.0156 & -0.3230\ 0.0477 & 0.0184 end{array} right)
print(to_ltx(np.random.randn(2,2),
latexarraytype='array',
is_row_vector=False,
mark_color='yellow',
mark_elements=[(1,1)],
brackets='(]',
separate_columns=[0,1],
separate_rows=[0,1],))
left( begin{array}{c|c} 0.3498 & 0.4393\ hline -0.8521 & colorbox{yellow}{$-0.6412$} end{array} right]
Jupyter Notebooks¶
import numpy as np
from numpyarray_to_latex.jupyter import to_jup
to_jup(np.random.randn(10,10),
mark_elements=[(1,1),(2,3),(7,0)],
separate_columns=[0,1],
separate_rows=[0,1],
)
to_jup(np.random.randn(2),
mark_elements=[1,],
separate_columns=[0,1],
separate_rows=[0,1],
)
to_jup(np.random.randn(2),
is_row_vector=False,
mark_elements=[1,],
separate_columns=[0,1],
separate_rows=[0,1],
mark_color='yellow',
brackets='(]',
)
to_jup(np.random.randn(2,2),
latexarraytype='Vmatrix',
is_row_vector=False,
separate_rows=[0,1],
)
to_jup(np.random.randn(2,2)+1j*np.random.randn(2,2),
mark_elements=[(0,1)],
)
to_jup(np.random.randn(2,2)+1j*np.random.randn(2,2),
mark_elements=[(0,1)],
fmt='{:4.2e}',
)
Main¶
Provides to_ltx to convert numpy arrays to LaTeX.
- numpyarray_to_latex.main.to_ltx(a, fmt='{:6.4f}', latexarraytype='array', imstring='i', is_row_vector=True, mathform=True, brackets='()', mark_elements=[], mark_color='pink', separate_columns=[], separate_rows=[])[source]¶
Return a LaTeX array given a numpy array.
- Parameters
a (numpy.ndarray) --
fmt (str, default = '{:6.2f}') -- python 3 formatter, optional- https://mkaz.tech/python-string-format.html
latexarraytype (str, default = 'array') --
Any of
"array" "pmatrix" "bmatrix" "vmatrix" "Vmatrix" "Bmatrix"
if "array", you can specifiy the brackets with the keyword
brackets
.imstring (str, default = 'i') -- Character to use to represent the imaginary unit. Usually
'i'
or'j'
is_row_vector (bool, default = True) -- If the array is 1D, should the output be a row (True) or column (False) vector?
mathform (bool, default = True) -- wether to convert strings like
1e+05
to1\times10^{5}
.brackets (iterable, default = '()') -- which brackets to use to wrap the matrix (must be two elements long). Use
brackets = None
if you don't want any brackets around the array.mark_elements (list, default = []) -- list of tuples containing element indices that should be marked with a colorbox.
mark_color (str, default = 'pink') -- The color with which to mark matrix elements.
separate_columns (list, default = []) -- list of column indices after which a vertical line should be drawn
separate_rows (list, default = []) -- list of row indices after which a horizontal line should be drawn
- Returns
out -- Formatted LaTeX string
- Return type
Examples
>>> from numpyarray_to_latex import to_ltx >>> tex = to_ltx([[2.,2.],[2.,2.]]) >>> print(tex) \left( \begin{array}{} 2.00 & 2.00\\ 2.00 & 2.00 \end{array} \right)