3D Array restrukturieren
Verfasst: Mittwoch 14. März 2018, 11:16
Hallo zusammen,
ich bin neu hier und möchte mich mit "big data" beschäftigen. Ich fange klein an mit Daten, die mir aus Matlab zur Verfügung gestellt werden.
Meine Frage ist folgende:
Es existiert ein 3D-Array mit den Dimensionen 56x83x72. Die ersten beiden Dimensionen mit 56x83 bilden eine 2D Ebene ab, die eine Geschwindigkeitskomponente enthält. Die dritte Dimension stellt die Zeit dar, also aufeinander folgende Zeitschritte (72 Stück). Für eine später folgende Analyse müssen die Daten eine andere Form gebracht werden: Eine "große "2D-matrix", jeder einzelne "Zeitschritt"soll in eine Spalte gewandelt werden.
Als Ergebnis möchte ich also eine Matrix( 4686 Zeilen * 72 Spalten). Meine bisherigen Versuche mit Numpy.reshape sind leider gescheitert.
Im Kern sollen also alle Spalten (83 an der Zahl) in eine Spalte úntereinander stehen, in der nächsten Spalte würde dann die nächsten 4686 Einträge stehen.
Hat jemand eine Idee, wie man das elegant mit Reshape machen kann?
Meine zweite Frage ist, wie man mit 'NaN' umgehen sollte. Die Matlab daten enthalten leider auch 'NaN'.
Beste Grüße
Christian
ich bin neu hier und möchte mich mit "big data" beschäftigen. Ich fange klein an mit Daten, die mir aus Matlab zur Verfügung gestellt werden.
Meine Frage ist folgende:
Es existiert ein 3D-Array mit den Dimensionen 56x83x72. Die ersten beiden Dimensionen mit 56x83 bilden eine 2D Ebene ab, die eine Geschwindigkeitskomponente enthält. Die dritte Dimension stellt die Zeit dar, also aufeinander folgende Zeitschritte (72 Stück). Für eine später folgende Analyse müssen die Daten eine andere Form gebracht werden: Eine "große "2D-matrix", jeder einzelne "Zeitschritt"soll in eine Spalte gewandelt werden.
Als Ergebnis möchte ich also eine Matrix( 4686 Zeilen * 72 Spalten). Meine bisherigen Versuche mit Numpy.reshape sind leider gescheitert.
Code: Alles auswählen
import numpy as np
Vradial=matlabdatei['U']
[...]
laenge=86x83
nt=72
Vrad_Snapshotbasis = np.reshape(Vradial, (laenge,nt))
Hat jemand eine Idee, wie man das elegant mit Reshape machen kann?
Meine zweite Frage ist, wie man mit 'NaN' umgehen sollte. Die Matlab daten enthalten leider auch 'NaN'.
Beste Grüße
Christian