sparse_distance_matrix#
- cKDTree.sparse_distance_matrix(self, other, max_distance, p=2.)#
Berechnet eine spärliche Distanzmatrix
Berechnet eine Distanzmatrix zwischen zwei cKDTrees und setzt alle Distanzen größer als max_distance auf Null.
- Parameter:
- othercKDTree
- max_distancepositive float
- pGleitkommazahl, 1<=p<=infinity
Welche Minkowski-p-Norm verwendet werden soll. Ein endlich großes p kann einen ValueError verursachen, wenn ein Überlauf auftritt.
- output_typeString, optional
Welcher Container für die Ausgabedaten verwendet werden soll. Optionen: 'dok_matrix', 'coo_matrix', 'dict' oder 'ndarray'. Standard: 'dok_matrix'.
- Rückgabe:
- resultdok_matrix, coo_matrix, dict oder ndarray
Spärliche Matrix, die die Ergebnisse im "Dictionary of Keys"-Format darstellt. Wenn ein Dict zurückgegeben wird, sind die Schlüssel Tupel von Indizes (i,j). Wenn output_type 'ndarray' ist, wird ein Record Array mit den Feldern 'i', 'j' und 'v' zurückgegeben.
Beispiele
Sie können eine spärliche Distanzmatrix zwischen zwei kd-trees berechnen
>>> import numpy as np >>> from scipy.spatial import cKDTree >>> rng = np.random.default_rng() >>> points1 = rng.random((5, 2)) >>> points2 = rng.random((5, 2)) >>> kd_tree1 = cKDTree(points1) >>> kd_tree2 = cKDTree(points2) >>> sdm = kd_tree1.sparse_distance_matrix(kd_tree2, 0.3) >>> sdm.toarray() array([[0. , 0. , 0.12295571, 0. , 0. ], [0. , 0. , 0. , 0. , 0. ], [0.28942611, 0. , 0. , 0.2333084 , 0. ], [0. , 0. , 0. , 0. , 0. ], [0.24617575, 0.29571802, 0.26836782, 0. , 0. ]])
Sie können überprüfen, ob Distanzen über der max_distance Null sind
>>> from scipy.spatial import distance_matrix >>> distance_matrix(points1, points2) array([[0.56906522, 0.39923701, 0.12295571, 0.8658745 , 0.79428925], [0.37327919, 0.7225693 , 0.87665969, 0.32580855, 0.75679479], [0.28942611, 0.30088013, 0.6395831 , 0.2333084 , 0.33630734], [0.31994999, 0.72658602, 0.71124834, 0.55396483, 0.90785663], [0.24617575, 0.29571802, 0.26836782, 0.57714465, 0.6473269 ]])