Wie Drucke ich eine ausgerichtet numpy-array mit (text -) Zeilen-und Spaltenbeschriftungen?
Gibt es irgendeine elegante Art und Weise zu nutzen, die den korrekten Abstand feature von print numpy.array
um ein 2D-array, mit den richtigen labels, die richtet, richtig? Zum Beispiel, angenommen ein array mit 4 Zeilen und 5 Spalten, wie kann ich das array und von geeigneter Größe, in Listen entsprechend der Zeilen-und Spalten-header zu erzeugen eine Ausgabe, die so aussieht?
A B C D E
Z [[ 85 86 87 88 89]
Y [ 90 191 192 93 94]
X [ 95 96 97 98 99]
W [100 101 102 103 104]]
Wenn ich naiv versuchen:
import numpy
x = numpy.array([[85, 86, 87, 88, 89], \
[90, 191, 192, 93, 94], \
[95, 96, 97, 98, 99], \
[100,101,102,103,104]])
row_labels = ['Z', 'Y', 'X', 'W']
print " A B C D E"
for row, row_index in enumerate(x):
print row_labels[row_index], row
Bekomme ich:
A B C D E
Z [85 86 87 88 89]
Y [90 191 192 93 94]
X [95 96 97 98 99]
W [100 101 102 103 104]
Gibt es eine Möglichkeit, ich kann die Dinge, um line-up intelligent? Ich bin auf jeden Fall offen mit jeder anderen Bibliothek, wenn es einen besseren Weg gibt mein problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, alle matrix Nummern haben höchstens 3 Ziffern, die Sie ersetzen könnten, den letzten Teil mit dabei:
Welche Ausgänge:
Formatierung mit
'%03s'
Ergebnisse in einen string der Länge 3 mit padding auf der linken Seite (mit Leerzeichen). Verwenden'%04s'
für die Länge 4 und so weiter. Die volle format string syntax erklärt sich in der Python-Dokumentation.Können Sie IPython notebook + Pandas für, die. Geben Sie Ihre ursprünglichen Beispiel in IPython notebook:
Dann erstellen Sie einen DataFrame:
Und dann zeigen Sie es:
Hier ist eine Weise zu nutzen, die array-Druck-Funktionen. Ich wahrscheinlich würde nicht es verwenden, aber es kommt ziemlich nah an die Erfüllung Ihrer Anforderungen!
Dieser code ist im wesentlichen eine Implementierung von scoffey ist oben, aber es muss nicht der drei-Zeichen-Begrenzung und ist ein bisschen stärker.
Hier ist mein code:
läuft
gibt
Damit wäre auch die Ausgabe, wenn 'x' wurden nur verschachtelte python-Liste, anstatt ein numpy-array.