Forum: Digitale Signalverarbeitung / DSP / Machine Learning Programm zur Datenauswertung gesucht


von Matthias P. (m4tthi45)


Angehängte Dateien:

Lesenswert?

Hallo Liebe Community,

Meine Ausgangslage ist, dass ich mehrere verschiedene Messdateien habe 
(CSV-Dateien mit 300000 Zeilen und 12 Spalten) und ich versuche diese 
Auszuwerten und grafisch darzustellen.

Zurzeit mache ich dies in Excel, wobei mit Hilf einer VBA die Daten 
automatisch in eine Vorlagedatei mit den nötigen Umrechnungsschritten 
(Parametrierung) und die richtigen Graphen eingelesen werden. Das 
Problem ist nur, dass dieser Vorgang sehr langsam ist und auch mein 
Rechner mit Excel sehr zu kämpfen hat (habe auch schon auf 16GB RAM 
aufgestockt).

Jetzt bin ich auf der Suche nach einem kostenlosen Programm, dass mit 
genau diese Datenauswertung vereinfacht und stabil mit meinen ~3.6 mio 
Messwerten klarkommt.
Deswegen wollte ich fragen, ob jemand von euch ein derartiges Programm 
kennt und empfehlen kann. Es sollte die Daten nach einem kurzen 
Umrechnungsschritt (Messdaten * Kalibrierungswert) darstellen können und 
vorzugsweise kurze Ladezeiten besitzen.
Ich weiß, dass das viel verlang ist für ein kostenloses Programm, ich 
hoffe jedoch trotzdem, dass mir jemand etwas Passendes weiterempfehlen 
kann.

Im Anhang habe ich noch eine Beispieldatei angehängt. Die Datei hat aber 
weniger Zeilen, da sie sonst zu groß wäre
Gruß
Matthias

von sascha (Gast)


Lesenswert?

Hallo Matthias,
für einfache Berechnungen würde ich mal GnuPlot probieren - oder GNU R 
wenn Du die Auswertung tiefer programmieren willst?
VG (=

von Benedikt S. (Gast)


Lesenswert?

Python mit numpy scipy und Pandas zum Laden der csv sind hier das Mittel 
meiner Wahl.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

sascha schrieb:
> GnuPlot

Das hätte ich Dir auch empfohlen, wenn es nur um die grafische 
Darstellung geht.

sascha schrieb:
> GNU R

Für Berechnung mit statistischen Methoden ist das gut.

Auch noch möglich wäre die Verwendung mit Octave oder wxmaxima, wenn 
viel berechnet werden soll.

von Marek N. (Gast)


Lesenswert?

Grafana wird grad gehyped.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Geht wunderbar mit Python. Das ist genau für sowas ein schönes einfaches 
Werkzeug. Code im Anhang. Bei Fragen fragen (-:

von Matthias P. (m4tthi45)


Lesenswert?

Vielen Dank erstmal für die Antworten.

Ich werde mir das mit Numpy einmal anschauen und versuchen.

Ebenfalls werde ich mir das mit Grana auch anschauen und schauen, was 
für mich die bessere Lösung ist.

Ich habe jedoch 2 Fragen:
1)Ist es umständlich ein Python Programm auf Windows laufen zu lassen.

2)Wie sieht es Performancetechnisch aus? Also wie lange benötigt man in 
etwa für die Darstellung der Graphen?


Gruß Matthias

von Gustl B. (-gb-)


Lesenswert?

Matthias P. schrieb:
> 1)Ist es umständlich ein Python Programm auf Windows laufen zu lassen.

Nein. Einmal Python installieren und dann das Programm starten mit

python PROGRAMMNAME.py

Matthias P. schrieb:
> 2)Wie sieht es Performancetechnisch aus? Also wie lange benötigt man in
> etwa für die Darstellung der Graphen?

Hier auf meinem Laptop dauert Einlesen und Plotten, also das komplette 
Programm ca. eine Sekunde.

von MatlabRegelt! (Gast)


Lesenswert?

> Nein. Einmal Python installieren und dann das Programm starten

Soso.
1
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
2
Type "help", "copyright", "credits" or "license" for more information.
3
>>> from pylab import *
4
Traceback (most recent call last):
5
  File "<stdin>", line 1, in <module>
6
ImportError: No module named pylab
7
>>> import numpy
8
Traceback (most recent call last):
9
  File "<stdin>", line 1, in <module>
10
ImportError: No module named numpy

Mit Matlab geht das deutlich einfacher.

von Gustl B. (-gb-)


Lesenswert?

Jo, Matlab kostet aber auch deutlich mehr.

Dein Consolen Output zeigt nur, dass du vermutlich noch nie Python 
verwendet hast.

Bei Python ist nicht alles dabei, pylab, numpy und auch datetime sind 
nicht dabei. Das muss man sich alsp nachinstallieren über den 
Paketmanager pip.

pip install pylab

istalliert das Modul pylab.

Der Vorteil mit den Modulen ist, dass Python selbst recht klein sein 
kann und dass es viele Module aus vielen Quellen gibt die man sich 
dazuladen kann nach Bedarf. Mittlerweile ist Python so populär, dass es 
für so ziemlich jedes Problem ein Modul gibt mit einer Funktion die das 
löst.

Im aktuellen Fall:

Eine Zeichenkette als Datum mit Zeit interpretieren lassen? Geht mit 
datetime.
Eine Liste mit mehreren Spalten in ein Array speichern und 
transponieren? Geht mit numpy.
Ein Array plotten? Geht mit pylab total einfach.

In der Tat, Matlab kann das auch, kostet aber leider recht viel.

von Kolja (Gast)


Lesenswert?

Für python jupyter nehmen, ansonsten bist du auf dem.richtigen weg.
Der ist anfangs etwas steinig, aber bald kennst du dich in deinem 
Viertel aus und willst da nicht mehr weg 😃

von MatlabRegelt! (Gast)


Lesenswert?

> du vermutlich noch nie Python verwendet hast.
Hab ich schon. Sogar auf unterschiedlichsten Systemen.

Aber:
> Einmal Python installieren und dann das Programm starten mit
ist wohl doch zu vereinfacht dargestellt.

von Gustl B. (-gb-)


Lesenswert?

MatlabRegelt! schrieb:
> Aber:
>> Einmal Python installieren und dann das Programm starten mit
> ist wohl doch zu vereinfacht dargestellt.

Ach gottchen, das ist aber echt anstrengend drei weitere kurze Befehle 
einzutippen. Da ist deine Matlabinstallation um längen dicker und 
braucht auch deutlich mehr Zeit. Und dann muss auch noch eine Lizenz 
erworben und installiert werden ...

Ja, bei Python muss man manchmal Module nachinstallieren, geht einfach 
aber muss man machen. Hätte ich drauf hinweisen können.

von uxdx (Gast)


Lesenswert?

ich bin auch absoluter Python-Fan geworden: übersichtlicher Code, 
schnell, wahnsinnig viele Funktionen (auch wenn diese teilweise 
nachgeladen werden müssen, aber da lädt man halt nur was man braucht), 
ich sehe es auch als Vorteil an, dass es interpretiert wird, da ist das 
debugging einfacher, compliiert werden kann es übrigens auch.

Ich mag allerdings auch Gnuplot, in wenigen Zeilen hat man eine Grafik 
und es ist sauschnell: gg. Excel vielleicht Faktor 100 oder noch besser: 
ich habe hier eine Tabelle mit 8 Spalten und fast 9000 Zeilen, die 
Grafik mit 5 Kurven dauert weniger als 1 Sekunde

von Yalu X. (yalu) (Moderator)


Lesenswert?

Gustl B. schrieb:
> auswerten.py

Numpy hat mit loadtxt eine ziemlich mächtige Funktion zum Einlesen von
Textdateien:

1
measurings = np.loadtxt(
2
  '20200810_meas_1356.csv',    # Dateiname
3
4
  delimiter = ';',             # Spaltentrennzeichen
5
6
  dtype = object,              # Elementdatentyp, hier object, weil die
7
                               # Spalten verschiedene Datentypen haben
8
9
  converters = {               # Konvertierungsfunktionen für die
10
    0: np.datetime64,          # einzelnen Spalten
11
    1: np.float,
12
    2: np.float,
13
    3: np.float,
14
    4: np.datetime64
15
  }
16
)

Das ist nicht nur übersichtlicher, sondern vermutlich auch performanter
als das Zusammenbauen einer Python-Liste in einer For-Schleife.

von Gustl B. (-gb-)


Lesenswert?

Vielen Dank, kannte ich noch nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.