scipy.spatial.KDTree.

sparse_distance_matrix#

KDTree.sparse_distance_matrix(other, max_distance, p=2.0, output_type='dok_matrix')[Quelle]#

Berechnet eine dünn besetzte Distanzmatrix.

Berechnet eine Distanzmatrix zwischen zwei KDTrees und setzt alle Distanzen, die größer als max_distance sind, auf Null.

Parameter:
otherKDTree
max_distancepositive Gleitkommazahl
pGleitkommazahl, 1<=p<=infinity

Welche Minkowski-p-Norm verwendet werden soll. Ein endliches, großes p kann einen ValueError verursachen, wenn es zu einem Überlauf kommen kann.

output_typeString, optional

Welchen Container für die Ausgabedaten verwendet werden soll. Optionen: 'dok_matrix', 'coo_matrix', 'dict' oder 'ndarray'. Standard: 'dok_matrix'.

Hinzugefügt in Version 1.6.0.

Rückgabe:
resultdok_matrix, coo_matrix, dict oder ndarray

Dünn besetzte Matrix, die die Ergebnisse im "Dictionary of Keys"-Format darstellt. Wenn ein Dict zurückgegeben wird, sind die Schlüssel (i,j)-Tupel von Indizes. Wenn output_type 'ndarray' ist, wird ein Record-Array mit den Feldern 'i', 'j' und 'v' zurückgegeben.

Beispiele

Sie können eine dünn besetzte Distanzmatrix zwischen zwei kd-Bäumen berechnen.

>>> import numpy as np
>>> from scipy.spatial import KDTree
>>> rng = np.random.default_rng()
>>> points1 = rng.random((5, 2))
>>> points2 = rng.random((5, 2))
>>> kd_tree1 = KDTree(points1)
>>> kd_tree2 = KDTree(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 prü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 ]])