Ich möchte aus 17,000,000 Koordinatenpunkten der Form: x1 y1 z1, x2 y2 z2, .... eine reguläre Matrix der Form:
nan---x1-------x2------......
y1-----z11-----z12
y2-----z21-----z22
...
erstellen. Die Koordinaten sind kreuz und quer, es gibt kaum System. Mein Vorgehen war jetzt bisher: Ich extrahiere erstmal alle x, y und z Koordinaten in 3 seperate Vektoren. Danach sortiere ich alle unique x- und y-Koordinaten der Reihe nach. Danach loope ich ein mal über alle einzigartigen x- und y- Werte und setze mithilfe
Code: Alles auswählen
for x_index, unique_x in enumerate(unique_x_values_sorted):
x_vector[x_vector== unique_x] = x_index
jeden vektor Wert zu einem zugehörigen Index. Das mache ich auch für y. Abschließend erstelle ich eine leere z-matrix und fülle sie an entsprechenden Stellen:
Code: Alles auswählen
z_matrix = np.zeros((len(unique_y_values_sorted), len(unique_x_values_sorted)))
# fill the z-matrx; this method takes 3 vectors and sets the according matrix values (accessed via _y_vector_integered, _x_vector_integered) to the according _z_vector_original-value
z_matrix[y_vector, x_vector] = z_vector
Durch den besagten Schleifendurchlauf ist das ganze furchtbar ineffizient. Gibt es nicht eine Möglichkeit, das ganze über eine np-Funktion etc. besser zu machen?
Grüße