Forum: PC-Programmierung zwei dimensionales Array in Python


von Steffen (Gast)


Lesenswert?

Hallo,

irgendwie komme ich aktuell mit einem total simplen Problem nicht 
weiter.

Ich bekomme Reihen von Messwerten (egal ob nun von einem 
Datenerfasungseinheit oder einfach aus einer Excel Datei gelesen).

Dieses Array mit Daten gehört immer zu einem Zeitpunkt. Also so etwas 
wie [Zeit, Sensor1, Sensor2, Sensor3] usw.

Nun würde ich die Daten gerne in einem Array ablegen in der Form:

[Zeit1, Sensor1, Sensor2, Sensor3]
[Zeit2, Sensor1, Sensor2, Sensor3]
[Zeit3, Sensor1, Sensor2, Sensor3]
[Zeit4, Sensor1, Sensor2, Sensor3]
usw.

Ich komme dabei irgendwie nicht weiter. Wie erstelle ich am schlausten 
so ein Array, wenn die Daten nach und nach reinkommen?

Und wie übergebe ich am Ende zb matplotlib zwei Spalten aus diesem 
Array. zB Zeit und Sensor2?

Könnt ihr mir einen Suchtipp geben? Ich habe schon numpy mit hstack usw 
gefunden, aber trotzdem komme ich nicht weiter

Am Ende hätte ich es gerne so, dass es unabhängig von der Anzahl der 
Sensoren funktioniert.

von Schlängli (Gast)


Lesenswert?

> Nun würde ich die Daten gerne in einem Array ablegen in der Form:
>
1
AA = [
2
   [Zeit1, Sensor1, Sensor2, Sensor3],
3
   [Zeit2, Sensor1, Sensor2, Sensor3],
4
   [Zeit3, Sensor1, Sensor2, Sensor3],
5
   [Zeit4, Sensor1, Sensor2, Sensor3],
6
]
7
8
AA.append([Zeit5, Sensor1, Sensor2, Sensor3])

> Wie erstelle ich am schlausten
> so ein Array, wenn die Daten nach und nach reinkommen?

Einfach neu hinten anfügen...


> Und wie übergebe ich am Ende zb matplotlib zwei Spalten aus diesem
> Array. zB Zeit und Sensor2?

For-Schlaufe? Die Verfeinerung davon dann List Comprehension

1
BB =  [ [e[0], e[2]] for e in AA ]

<https://docs.python.org/3/tutorial/datastructures.html>;

von Steffen (Gast)


Lesenswert?

Das ist ja viel simpler als gedacht und geht ganz ohne numpy.

Vielen Dank! Problem gelöst

von Schlängli (Gast)


Lesenswert?

Steffen schrieb:
> Das ist ja viel simpler als gedacht

Welcome To Python!
...with batteries included :-)

von imonbln (Gast)


Lesenswert?

Ich finde solche Arrays sind doch alles andere als schon. für jeden 
Eintrag würde ich ein dict empfehlen.
1
AA = [
2
   { "Zeit": Zeit1, "Sensor1" :Sensor1, "Sensor2": Sensor2, "Sensor3": Sensor3},
3
   { "Zeit": Zeit2, "Sensor1" :Sensor1, "Sensor2": Sensor2, "Sensor3": Sensor3},
4
   { "Zeit": Zeit3, "Sensor1" :Sensor1, "Sensor2": Sensor2, "Sensor3": Sensor3},
5
]
6
7
AA.append({"Zeit": ZeitX, "Sensor1": Sensor1, "Sensor2": Sensor2, "Sensor3": Sensor3})

dann kannst du über die keys auf die Daten zugreifen das erhöht das 
Verständnis ungemein.
1
  for event in AA:
2
    print(event["Zeit"], event["Sensor3"])

gibt dann alle werte von Sensor 3 zu jeden Zeitpunkt aus.

von Simon K. (simon) Benutzerseite


Lesenswert?

Der most Pythonic way wäre eine Liste aus namedtuple Instanzen. Google 
hilft.

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.