Schnelleres finden und ersetzen von gleichen Integer-Paaren
Verfasst: Donnerstag 21. Januar 2016, 17:34
Hallo Leute,
ich habe einen 2D-array (pairs) gefüllt mit Integern die gemeinsame Paare aus einer
Mein funktionierender Code dazu sieht wie folgt aus:
und bring das Ergebnis:
Wenn der pairs-array sehr groß wird dauert die for-Schleife sehr lang. Gibt es da eine schnellere Variante? Habt ihr vielleicht eine Idee?
Viele Grüße
Schneitzmaster
ich habe einen 2D-array (pairs) gefüllt mit Integern die gemeinsame Paare aus einer
abfrage darstellen. Nun möchte ich alle verknüpften Paare zusammenbringen. Dafür soll zunächst der Schnitt aus beiden Spalten leer sein (keine Integer die in der linken und rechten Spalte zu finden sind).scipy.spatial.cKDTree( pnts ).query_pairs(delta)
Mein funktionierender Code dazu sieht wie folgt aus:
Code: Alles auswählen
import numpy as np
pairs = np.array([[1,2],
[2,3],
[3,5],
[3,4],
[5,7],
[10,11],
[10,12],
[13,14]])
dbl_ids = np.intersect1d(pairs[:,0],pairs[:,1]) # get integer of connected pairs
# connect pairs by merging integers
for dbl_id in dbl_ids:
master_integer = pairs[np.argmax(dbl_id==pairs[:,1]),0]
pairs[pairs[:,0]==dbl_id,0]=master_integer # overwrite slave integer
print pairs
Code: Alles auswählen
>>> print pairs
[[ 1 2]
[ 1 3]
[ 1 5]
[ 1 4]
[ 1 7]
[10 11]
[10 12]
[13 14]]
Viele Grüße
Schneitzmaster