pylab ASCII Daten importieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fk08
User
Beiträge: 37
Registriert: Donnerstag 20. März 2008, 13:46

Donnerstag 20. März 2008, 13:54

Hallo,

bin ziemlich neu in python.
meine frage: ich habe daten im ascii format abgespeichert und zwar z.B so:

123 565 360 ...
123 478 833 ...
.... .....
....

also eine (n x m) matrix in einer .dat datei

nun möchte ich diese datei in eine matrix laden. anschliessend möchte ich einen imageplot machen. dabei sollen die indizes die x bzw. y werte sein. d.h das elemnt a_ij ist der intensitätswert zum x wert = i und y wert = j.

wie geht das? habs mit
X = load('pfad') versucht, aber dann wir ein spaltenvektor produziert,
ich will ja eine matrix

grüße und danke
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Donnerstag 20. März 2008, 14:14

Nur so als Hinweis:
Die Informationen die du gibst sind nutzlos.

Code: Alles auswählen

In [1]: load('foo.dat)
---------------------------------------------------------------------------
<type 'exceptions.NameError'>             Traceback (most recent call last)

/home/dax/<ipython console> in <module>()

<type 'exceptions.NameError'>: name 'load' is not defined
Und du musst uns erstmal erklären, was das 'ascii-Format' ist.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 20. März 2008, 14:32

Hallo und willkommen im Forum,

in der Tat sind die Informationen, die Du gibst nicht besonders wertvoll. Aber ein paar generelle Tipps, kann man schon mal geben:

Code: Alles auswählen

from pylab import load
x = load('test.dat')
# hierbei ist x ein array
from scipy.misc import toimage
y = toimage(x)
# und y ist eine Image.Image instance - vorausgesetzt Du hast PIL installiert
from Image import Image
Image.save(y, 'test.png')
So jetzt hast wieder ein Bild erzeugt. (Was Du vielleicht nicht willst.)

Wenn Du einen Contourplot erstellen wirst: Das wurde hier schon mal diskutiert http://www.python-forum.de/topic-5294.html
Weitere Beispiele gibt es auf der MPL-Seite, u. a. hier: http://matplotlib.sourceforge.net/screenshots.html

Gruss,
Christian
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Donnerstag 20. März 2008, 15:15

Ahh...jetzt hab ich im Titel gesehen, dass es wohl um pylab geht :]
fk08
User
Beiträge: 37
Registriert: Donnerstag 20. März 2008, 13:46

Donnerstag 20. März 2008, 17:06

ohh, sorry, wenn ich nicht richtig verstanden wurde.

habe X = load('pfad') benutzt, allerdings mit size(X) kam nur ein wert zurück.


daraus schliesse ich dass die sämtlichen daten in einem vektor gespeichert wurden und nicht in einer matrix.

die daten die ich einlesen will sind numerische messwerte.

ja, ich will mich in pylab einfuchsen, hab von vielen gehört, dass es super ist.

vielen dank
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 20. März 2008, 17:15

Hoi,

Du wirst es Dir und uns leichter machen, demnächst Code in Code-Tags einzuschließen und zu sagen, was Du importierst, usw. - nur mal so.
Und Deinen letzten Post verstehe ich, ehrlich gesagt, auch nicht: pylab.load gibt ein numerix.array zurück - hier müsste man wissen, welches Paket Du verwendest: numpy, numarray, Numeric? Um eine Vorstellung davon zu haben wie das array aussieht, müsste man wissen wie Deine Daten aufgebaut sind (wieviel folgt an Stelle der "..."?). Einen "Vector" gibt es nicht direkt in numpy/Numeric und eine Matrix ist nicht dasselbe wie ein array - auch wenn es genauso aussieht.
Vielleicht magst Du Dich ein bißchen auf der numpy-Webseite "herumtreiben"? ;-) Das könnte Dir eher helfen, als das einfuchsen in pylab/mpl.

Gruß,
Christian
fk08
User
Beiträge: 37
Registriert: Donnerstag 20. März 2008, 13:46

Freitag 21. März 2008, 10:34

ok,

ich denke ich werde erstmal bisschen theorie lernen :)
Antworten