Ein unvollständige PositionsArray in Matrix füllen
Verfasst: Montag 4. Mai 2020, 08:02
Hallo liebe Community,
ich bin total am verzweifeln.. Ich habe einen Array, der aus einem Datensatz zusammenhängede CSV Datein in Matrizen speichern soll. Ich weiß vorher nicht wie groß der Datensatz ist daher soll er die Matrixen einfach erzeugen.
In dem Beispiel bekomme ich diesen Array für die Positionen der Matrix:
[[1, 1, 1, 0], [1, 1, 5, 0], [1, 2, 0, 0], [1, 2, 0, 1], [1, 2, 0, 2], [1, 2, 1, 0], [1, 2, 1, 1], [1, 2, 1, 2], [1, 2, 2, 0], [1, 2, 2, 1], [1, 2, 2, 2], [1, 3, 0, 1], [1, 3, 0, 1], [1, 3, 0, 1], [1, 3, 0, 2], [1, 3, 1, 1], [1, 3, 1, 1], [1, 3, 1, 1], [1, 3, 1, 2], [1, 3, 1, 2], [1, 3, 1, 2], [2, 1, 1, 0], [2, 1, 5, 0], [2, 2, 0, 0], [2, 2, 0, 1], [2, 2, 0, 2], [2, 2, 1, 0], [2, 2, 1, 1], [2, 2, 1, 2], [2, 2, 2, 0], [2, 2, 2, 1], [2, 2, 2, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 4, 0, 10], [2, 4, 1, 10], [3, 1, 0, 0], [3, 1, 1, 0], [3, 1, 1, 0], [3, 1, 2, 0], [3, 1, 3, 0], [3, 1, 10, 0], [3, 2, 0, 0], [3, 2, 0, 1], [3, 2, 0, 2], [3, 2, 1, 0], [3, 2, 1, 1], [3, 2, 1, 2], [3, 2, 2, 0], [3, 2, 2, 1], [3, 2, 2, 2], [3, 3, 0, 2], [3, 3, 0, 2], [3, 3, 0, 2], [3, 3, 1, 2], [3, 3, 1, 2]]
Ich möchte jetzt aus den Positionen eine Matrix der Tiefe 4 erzeugen, wobei jeder Eintrag seine Position darstellt:
Leider bekomme ich die Fehlermeldung TypeError: cannot unpack non-iterable int object. Ich sehe den Wald vor lauter Bäumen nicht mehr. Ich sitze seit Tagen dran und irgendwie ist jeder Versuch ein anderer Knoten im Kopf. Vielleicht hat einer von euch eine Idee, oder sowas ähnliches gemacht..
ich bin total am verzweifeln.. Ich habe einen Array, der aus einem Datensatz zusammenhängede CSV Datein in Matrizen speichern soll. Ich weiß vorher nicht wie groß der Datensatz ist daher soll er die Matrixen einfach erzeugen.
In dem Beispiel bekomme ich diesen Array für die Positionen der Matrix:
[[1, 1, 1, 0], [1, 1, 5, 0], [1, 2, 0, 0], [1, 2, 0, 1], [1, 2, 0, 2], [1, 2, 1, 0], [1, 2, 1, 1], [1, 2, 1, 2], [1, 2, 2, 0], [1, 2, 2, 1], [1, 2, 2, 2], [1, 3, 0, 1], [1, 3, 0, 1], [1, 3, 0, 1], [1, 3, 0, 2], [1, 3, 1, 1], [1, 3, 1, 1], [1, 3, 1, 1], [1, 3, 1, 2], [1, 3, 1, 2], [1, 3, 1, 2], [2, 1, 1, 0], [2, 1, 5, 0], [2, 2, 0, 0], [2, 2, 0, 1], [2, 2, 0, 2], [2, 2, 1, 0], [2, 2, 1, 1], [2, 2, 1, 2], [2, 2, 2, 0], [2, 2, 2, 1], [2, 2, 2, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 0, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 3, 1, 2], [2, 4, 0, 10], [2, 4, 1, 10], [3, 1, 0, 0], [3, 1, 1, 0], [3, 1, 1, 0], [3, 1, 2, 0], [3, 1, 3, 0], [3, 1, 10, 0], [3, 2, 0, 0], [3, 2, 0, 1], [3, 2, 0, 2], [3, 2, 1, 0], [3, 2, 1, 1], [3, 2, 1, 2], [3, 2, 2, 0], [3, 2, 2, 1], [3, 2, 2, 2], [3, 3, 0, 2], [3, 3, 0, 2], [3, 3, 0, 2], [3, 3, 1, 2], [3, 3, 1, 2]]
Ich möchte jetzt aus den Positionen eine Matrix der Tiefe 4 erzeugen, wobei jeder Eintrag seine Position darstellt:
Code: Alles auswählen
fertige_matrix =fertige_matrix =np.array([[[[]]]])
for element in position:
if element[tiefe1] < element[tiefe1+1]:
tiefe2,tiefe3,tiefe4=0
fertige_matrix[tiefe1][tiefe2][tiefe3][tiefe4].append([0,0])
tiefe1=tiefe1+1
elif element[tiefe2] < element[tiefe2+1]:
tiefe3,tiefe4=0
fertige_matrix[tiefe1][tiefe2][tiefe3][tiefe4].append([0,0])
tiefe2=tiefe2+1
elif element[tiefe3] < element[tiefe3+1]:
tiefe4 = 0
fertige_matrix[tiefe1][tiefe2][tiefe3][tiefe4].append([0,0])
tiefe3=tiefe3+1
elif element[tiefe4] < element[tiefe4+1]:
fertige_matrix[tiefe1][tiefe2][tiefe3][tiefe4].append([0,0])