@MagBen: okay danke ich werd mir das mit dem sorted array mal anschauen.
Vielleicht könnte ich hier gleich noch eine andere Frage los werden, die in die gleiche Richtung zielt.
Ich habe 2 arrays mit Knotenkoordinaten (nodes, new_nodes).
Nun möchte ich dem Knotenarray nodes die Knoten aus new_nodes hinzufügen oder falls der entsprechende Knoten schon enthalten ist, die index position extrahieren.
Praktisch umgestzt habe ich das Ganze in dem ich jeweils die Knotenposition aus new_nodes vom nodes-array abgezogen habe, die norm gebildet habe und dann diese norm als
kriterium herangezogen habe um zu entscheiden ob der Knoten bereits in nodes enthalten ist.
Auch hier ist wiederum die map Funktion zur Bildung des diff_arr der Flaschenhals.
Code: Alles auswählen
import numpy
nodes = np.array( [ [0.,0.,0.],
[1.,1.,1.],
[0.5,0.5,0.5]] )
new_nodes = np.array( [[1.,1.,1.],
[1.,1.,1.00001]])
delta = 10**-8
diff_arr = np.array(map(lambda x: np.add(nodes,-x), new_nodes )) # LANGSAM
norm_arr = map(lambda x: np.linalg.norm(x,axis=1),diff_arr)
idx = []
for i in xrange(len(norm_arr)): # LOOP OVER ALL NODES
norm_arr_i = norm_arr[i]
if norm_arr_i.min()>delta:
nodes = np.vstack( (nodes,new_nodes[i]) )
idx.append(len(nodes)-1)
else:
idx.append(norm_arr_i.argmin())
print nodes
print idx