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