Użyłbym LaTeXa do wygenerowania tabel, ponieważ wyglądają fantazyjnie i możesz albo wygenerować obraz, albo bezpośrednio umieścić je w swoim dokumencie. Aby to osiągnąć, użyłem następującego kodu:
#!/usr/bin/env
import numpy as np
import os
x = np.array([[1,2],[3,4]])
def generateLatexTable(x):
start = [r'\documentclass[preview]{standalone}', r'\begin{document}', r'\begin{tabular}{%s}' % ('{1}{0}{1}'.format('|'.join(['r'] * x.shape[1]), '|')), r'\hline']
tab = [' & '.join(['%d' % val for val in row]) + r' \\ \hline' for row in x]
end = [r'\end{tabular}', r'\end{document}']
text = '\n'.join(start + tab + end)
return text
with open('table.tex', 'w') as f:
f.write(generateLatexTable(x))
os.system("pdflatex table.tex")
W tym przypadku previewużywana jest klasa dokumentu, która zwraca obraz o zmienionym rozmiarze do zawartości dokumentu, tj. Tylko tabeli. Do tabularprezentacji danych używane jest tylko środowisko. Pomiędzy komórkami znajdują się poziome i pionowe paski, ale bardzo łatwo to zmienić. W zmiennej tabdane są przetwarzane dla każdego wiersza i konwertowane na ciąg. Pamiętaj, że musisz określić format wyjściowy w tej pozycji. Ustawiłem na %dtak, aby wszystko było konwertowane na liczby całkowite.
Jeśli chcesz używać tabeli bezpośrednio w źródle lateksu, musisz usunąć, documentclassa \begin{document}także \end{document}w zmiennych starti end. Na koniec wszystko składa się w źródło lateksu, które jest następnie przechowywane na dysku jako table.tex. Jeśli chcesz tylko obraz na końcu, plik wynikowy zostanie skompilowany table.pdf.
Oto jak wygląda wyjście. Ale tak jak powiedziałem, bardzo łatwo jest zmienić wygląd, ponieważ jest to LaTeX :)

Oto kolejny przykład z dużą matrycą (14 x 14), wypełnioną losowymi liczbami od 0 do 100:

tableże byłby to dobry początek. Nie wykorzystałem go wystarczająco, aby dać dobrą odpowiedź.