I am looking for a clean way to transfer numpy arrays to a latex matrix. It should work both for two-dimensional arrays, and for horizontal and vertical array 1d.
Example
A = array([[12, 5, 2], [20, 4, 8], [ 2, 4, 3], [ 7, 1,10]]) print A
Of:
[[12 5 2] [20 4 8] [ 2 4 3] [ 7 1 10]] [12 5 2] [[12] [20] [ 2] [ 7]] \begin{bmatrix} 12.000 & 5.000 & 2.000 & \\ 20.000 & 4.000 & 8.000 & \\ 2.000 & 4.000 & 3.000 & \\ 7.000 & 1.000 & 10.000 & \\ \end{bmatrix} \begin{bmatrix} 12.000 & 5.000 & 2.000 \end{bmatrix} \begin{bmatrix} 12.000 & \\ 20.000 & \\ 2.000 & \\ 7.000 & \\ \end{bmatrix}
Attempt to solve
def array_to_bmatrix(array): begin = '\\begin{bmatrix} \n' data = '' for line in array: if line.size == 1: data = data + ' %.3f &'%line data = data + r' \\' data = data + '\n' continue for element in line: data = data + ' %.3f &'%element data = data + r' \\' data = data + '\n' end = '\end{bmatrix}' print begin + data + end
This solution works for vertical and 2-dimensional arrays, however, it displays horizontal arrays as vertical.
array_to_bmatrix(A[0])
Of:
\begin{bmatrix} 12.000 & \\ 5.000 & \\ 2.000 & \\ \end{bmatrix}
source share