Seite 1 von 2

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 09:23
von 01detlef
Hallo,

also ich habe jetzt wirklich viel herumprobiert, aber ich verstehe nicht, wieso immer angesagt wird, dass
name 'numpy' is not defined

Code: Alles auswählen

fobj = open("woerterbuch.txt", "r")
for line in fobj: 
    print line 
fobj.close()
Das läuft wunderbar, aber bei dem Code mit loadtxt wird immer der Fehler angezeigt:

Code: Alles auswählen

a = np.loadtxt(datei, skiprows=2, ...)
mfg

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 09:28
von 01detlef
ahh man muss

import numpy

machen!

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 10:27
von 01detlef

Code: Alles auswählen

import numpy 
   
datei = 'sinus.txt'
a = numpy.loadtxt(datei, skiprows=2)
res=numpy.fft.fft(a[1])
Ich habe nun den folgenden Code und der läuft auch soweit, nur habe ich ein Problem. Die Datei wird geladen und dann wird glaub ich nur vom letzten Wert die FFT berechnet. Also habe ich an eine Schleife gedacht, aber ich weiss gerade nicht, wie ich so die Werte einzelnd ansprechen kann, so dass ich dann die FFT anwenden kann?!

mfg

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 10:56
von BlackJack
@01detlef: Was meinst Du mit "letztem" Wert? Du greifst auf den Index 1 von `a` zu, also auf die zweite Zeile des zweidimensionalen Arrays. Die Zählung beginnt bei 0.

Was hast Du denn vor? Was enthält die Datei für Daten, also was bedeuten die Werte, Zeilen, die Datei als ganzes? Und was möchtest Du als Ergebnis haben?

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 11:01
von 01detlef
Hallo,

da liegt wohl mein Fehler. Ich möchte das alle Daten in der zweiten Spalte einer FFT unterzogen werden. In der ersten Spalte ist die Zeit und in der zweiten die y-Werte dazu und davon soll die FFT gemacht werden.

mfg

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 11:08
von BlackJack
Dann musst Du jetzt herausfinden wie man die zweite Spalte anspricht. Du lernst wahrscheinlich mehr, wenn Du Dir das selbst erarbeitest. Das sind `numpy`-Grundlagen.

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 11:26
von Darii
01detlef hat geschrieben:da liegt wohl mein Fehler. Ich möchte das alle Daten in der zweiten Spalte einer FFT unterzogen werden. In der ersten Spalte ist die Zeit und in der zweiten die y-Werte dazu und davon soll die FFT gemacht werden.
Wenn du statt Zeilen Spalten willst musst du wohl transponieren, da gibts neben einem Attribut vom ndarray sogar ein Argument bei loadtxt für. Alternativ kannst du dich auch durch die Slicing-Syntax von Numpy wurschteln, die ist recht mächtig.

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 11:44
von 01detlef
Hallo,

also die Spalte kann ich ja mit usecols : sequence, optional ansprechen, aber das muss ja irgendwie in einer Schleife passieren damit jeder Wert mit der FFT bearbeitet wird oder? Ich habe noch keine Vorstellung wie ich das machen könnte, dass jeder Wert berechnet wird.

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 12:45
von BlackJack
@01detlef: Mit dem `usecols`-Argument kannst du beeinflussen welche Spalten aus der Datei geladen werden. Welche bei einem Array im Speicher angesprochen/verwendet werden, kannst Du über die entsprechenden Argumente beim Indexzugriff beeinflussen. Aber wie gesagt, das sind `numpy`-Grundlagen. Du solltest dazu einfach mal ein Tutorial durcharbeiten. Man sollte schon so grundsätzlich verstehen wie die Werkzeuge funktionieren, mit denen man arbeitet.

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 12:46
von Darii
01detlef hat geschrieben:Hallo,

also die Spalte kann ich ja mit usecols : sequence, optional ansprechen, aber das muss ja irgendwie in einer Schleife passieren damit jeder Wert mit der FFT bearbeitet wird oder? Ich habe noch keine Vorstellung wie ich das machen könnte, dass jeder Wert berechnet wird.
Ist es wirklich zu viel verlangt transponieren mit leo zu übersetzen und danach in der Doku zu suchen? Irgendwie fühle ich mich gerade etwas veräppelt.

Re: FFT mit Daten

Verfasst: Mittwoch 12. Mai 2010, 16:20
von CM
... außerdem steht eine Möglichkeit zu transponieren bereits in meinem Post - inkl. Erklärung, daß es dazu dient die gewünschte Spalte auszusuchen. Also, die Posts lesen und ggf. nachfragen mußt Du schon machen.

Gruß
Christian

Re: FFT mit Daten

Verfasst: Montag 17. Mai 2010, 09:27
von 01detlef
Hallo,

bei einer Sache komme ich aber nicht weiter, weil das schon häufiger aufgetaucht ist. Ich habe einen Beispiel-Code und möchte diesen einfach mal laufen lassen, um mit der plot-Funktion etwas zu machen, aber immer wird dieser Fehler angezeigt:

No module named pylab

Davon gab es schon mehrere Fehlermeldungen mit anderen Modulen. Muss ich diese erst zusätzlich herunterladen?

Code: Alles auswählen

import numpy
import pylab
# Build a vector of 10000 normal deviates with variance 0.5^2 and mean 2
mu, sigma = 2, 0.5
v = numpy.random.normal(mu,sigma,10000)
# Plot a normalized histogram with 50 bins
pylab.hist(v, bins=50, normed=1)       # matplotlib version (plot)
pylab.show()
# Compute the histogram with numpy and then plot it
(n, bins) = numpy.histogram(v, bins=50, normed=1)  # NumPy version (no plot)
pylab.plot(.5*(bins[1:]+bins[:-1]), n)
pylab.show()
mfg

Re: FFT mit Daten

Verfasst: Montag 17. Mai 2010, 10:14
von Darii
01detlef hat geschrieben:Davon gab es schon mehrere Fehlermeldungen mit anderen Modulen. Muss ich diese erst zusätzlich herunterladen?
Wieso stellst du solche Fragen, die du dir eigentlich schon selbst beantwortet hast? Probier es aus! Man, man…

Re: FFT mit Daten

Verfasst: Montag 17. Mai 2010, 10:16
von CM
01detlef hat geschrieben:Muss ich diese erst zusätzlich herunterladen?
Selbstverständlich. Python hat verdammt viel schon an Bord, aber manche Dinge wollen erst installiert sein. Bzgl. pylab mal unter matplotlib googeln. (Im Übrigen steht auf der Seite, wo Du den Code stiebitzt hast, daß Du matplotlib installieren mußt, wenn Du die Graphiken sehen willst.)

HTH
Christian