{ } Raw JSON

bundles / scipy 1.17.1 / scipy / spatial / _ckdtree / cKDTree / sparse_distance_matrix

cython_function_or_method

scipy.spatial._ckdtree:cKDTree.sparse_distance_matrix

Signature

def   sparse_distance_matrix ( self other max_distance p = 2.0 )

Summary

Compute a sparse distance matrix

Extended Summary

Computes a distance matrix between two cKDTrees, leaving as zero any distance greater than max_distance.

Parameters

other : cKDTree
max_distance : positive float
p : float, 1<=p<=infinity

Which Minkowski p-norm to use. A finite large p may cause a ValueError if overflow can occur.

output_type : string, optional

Which container to use for output data. Options: 'dok_matrix', 'coo_matrix', 'dict', or 'ndarray'. Default: 'dok_matrix'.

Returns

result : dok_matrix, coo_matrix, dict or ndarray

Sparse matrix representing the results in "dictionary of keys" format. If a dict is returned the keys are (i,j) tuples of indices. If output_type is 'ndarray' a record array with fields 'i', 'j', and 'v' is returned,

Examples

You can compute a sparse distance matrix between two kd-trees:
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()
You can check distances above the `max_distance` are zeros:
from scipy.spatial import distance_matrix
distance_matrix(points1, points2)

Aliases

  • scipy.spatial.cKDTree.sparse_distance_matrix