Seite 1 von 1
Spyder Konsole
Verfasst: Montag 28. November 2016, 18:47
von Fredi22
Gibts es eine möglichkeit die Anzahl der Werte die die Spyder Konsole ausspuckt zu erhöhen? Die Anzahl der Zeilen in meiner Tabelle wird durch die Konsole künstlich abgeschnitten, was für meine Anwendung ziemlich ungünstig ist. Es sollen also nicht nur ein paar hundert sondern wenn möglich ein paar tausend werte ausgegeben werden können. Danke
Re: Spyder Konsole
Verfasst: Montag 28. November 2016, 19:49
von MagBen
Ich vermute Du meinst die Ausgabe von Numpy-Arrays auf der Konsole.
Wenn Du Numpy-Arrays auf der Konsole ausgibst, dann wird die __str__() Methode des Numpy-Arrays aufgerufen. __str__ ist so implementiert, dass bei bei Arrays bis zu einer Länge von ein paar hundert Elementen alle Elemente ausgegeben werden und bei ein paar Tausend nur der Anfang und das Ende. Das hat nichts mit Spyder zu tun. Wenn Du Dir ein paar tausend Elemente ausgeben lassen willst, dann kannst Du das mit der Methode tolist() machen oder Dir die Werte mit der Funktion savetxt in eine Datei ausgeben und die Datei dann mit einem Editor anschauen.
Code: Alles auswählen
import numpy as np
a = np.linspace(0,4,401)
print a
# Ausgabe: alle Elemente von a
b = np.linspace(0,4,4001)
print b
# Ausgabe:
# [ 0.00000000e+00 1.00000000e-03 2.00000000e-03 ..., 3.99800000e+00
# 3.99900000e+00 4.00000000e+00]
print b.tolist()
# Ausgabe: alle Elemente von b
np.savetxt("b.out", b)
# Ausgabe: Datei b.out enthält alle Elemente
Ich persönlich schaue mir ein Array mit tausenden von Elementen mit der plot-Funktion von Matplotlib an.
Re: Spyder Konsole
Verfasst: Montag 28. November 2016, 21:08
von BlackJack
Ergänzend zu dem was MagBen gesagt hat: Der Grund für das kürzen der Zeichenkettendarstellung ist das kein Mensch mit den ganzen Daten etwas anfangen kann. Es macht für einen Menschen also keinen Sinn alles anzuzeigen. Zumindest normale Menschen können mit gefilterten, aggregierten, oder grafisch aufbereiteten Daten in solchen Mengen mehr anfangen. Oder eben überhaupt etwas.
Re: Spyder Konsole
Verfasst: Dienstag 29. November 2016, 10:08
von Fredi22
Danke für die Antwort. Es geht aber nicht um ein numpy array sondern um ein loop der in jedem durchgang etwas printet damit die daten nebeneinander angeordnet sind. In der array Darstellungsweise kann man natürlich nichts anfangen mit tausenden von Daten. Die Konsole füllt sich mit den werten und schneidet die ersten ab wenn die letzten eingefügt werden.
Code: Alles auswählen
for i in range (30000,40000):
print ("€%.2f €%.4f" % (K[i],C[i]))
Re: Spyder Konsole
Verfasst: Dienstag 29. November 2016, 10:34
von BlackJack
@Fredi22: Da greift doch das gleiche Argument: 10K Werte sind nichts was man sich als Mensch so anschauen möchte. Selbst wenn man in der Konsole in der das ausgegeben wird 10.000 Zeilen zurück scrollen kann.
Ansonsten schau mal in den Einstellungen für IPython-Konsolen in Spyder ob sich die Zeilenanzahl erhöhen lässt. Als allerletztes bliebe noch das Programm entsprechend zu ändern.
Re: Spyder Konsole
Verfasst: Mittwoch 30. November 2016, 11:50
von Fredi22
Versteh ich nicht. Warum sollte ich mir nicht so viele Werte anschauen wollen? Das hängt doch vom zusammenhang ab. Ich will nicht jedesmal etwas in mein skript eintippen sondern nur runter scrollen da ich die werte in meiner anwendung sehr schnell find auch wenns 100k wären.
Re: Spyder Konsole
Verfasst: Mittwoch 30. November 2016, 12:11
von BlackJack
@Fredi22: Du kannst mit Hilfe eines Scrollbalkens 10K oder gar 100K Zeilen eine gewünschte Zeile zuverlässig gezielt ansteuern? Ich bekomme das nicht hin. Da ist der Scrollbalken bei mir kein Balken mehr sondern eher ein kleines Quadrat und eine winzige Bewegung lässt mehr Zeilen vorbeirauschen als ich will, bei 100K sicher auch mehr als gerade gleichzeitig sichtbar sind, da ist sinnvolles Navigieren auf diese Weise bei mir nicht mehr möglich.
Wenn ein Programm so viel Ausgaben erzeugt und ich darin navigieren möchte, pipe ich das normalerweise in ``less`` und gebe dort dann Zeilennummern an oder suche nach einem bestimmten Text(muster), und blättere dann in der Nähe der Zeilen die mich interessieren seitenweise vor und zurück.