Module « scipy.spatial »
Classe « KDTree »
Informations générales
Héritage
builtins.object
cKDTree
KDTree
Définition
class KDTree(cKDTree):
Description [extrait de KDTree.__doc__]
kd-tree for quick nearest-neighbor lookup.
This class provides an index into a set of k-dimensional points
which can be used to rapidly look up the nearest neighbors of any
point.
Parameters
----------
data : array_like, shape (n,m)
The n data points of dimension m to be indexed. This array is
not copied unless this is necessary to produce a contiguous
array of doubles, and so modifying this data will result in
bogus results. The data are also copied if the kd-tree is built
with copy_data=True.
leafsize : positive int, optional
The number of points at which the algorithm switches over to
brute-force. Default: 10.
compact_nodes : bool, optional
If True, the kd-tree is built to shrink the hyperrectangles to
the actual data range. This usually gives a more compact tree that
is robust against degenerated input data and gives faster queries
at the expense of longer build time. Default: True.
copy_data : bool, optional
If True the data is always copied to protect the kd-tree against
data corruption. Default: False.
balanced_tree : bool, optional
If True, the median is used to split the hyperrectangles instead of
the midpoint. This usually gives a more compact tree and
faster queries at the expense of longer build time. Default: True.
boxsize : array_like or scalar, optional
Apply a m-d toroidal topology to the KDTree.. The topology is generated
by :math:`x_i + n_i L_i` where :math:`n_i` are integers and :math:`L_i`
is the boxsize along i-th dimension. The input data shall be wrapped
into :math:`[0, L_i)`. A ValueError is raised if any of the data is
outside of this bound.
Notes
-----
The algorithm used is described in Maneewongvatana and Mount 1999.
The general idea is that the kd-tree is a binary tree, each of whose
nodes represents an axis-aligned hyperrectangle. Each node specifies
an axis and splits the set of points based on whether their coordinate
along that axis is greater than or less than a particular value.
During construction, the axis and splitting point are chosen by the
"sliding midpoint" rule, which ensures that the cells do not all
become long and thin.
The tree can be queried for the r closest neighbors of any given point
(optionally returning only those within some maximum distance of the
point). It can also be queried, with a substantial gain in efficiency,
for the r approximate closest neighbors.
For large dimensions (20 is already large) do not expect this to run
significantly faster than brute force. High-dimensional nearest-neighbor
queries are a substantial open problem in computer science.
Attributes
----------
data : ndarray, shape (n,m)
The n data points of dimension m to be indexed. This array is
not copied unless this is necessary to produce a contiguous
array of doubles. The data are also copied if the kd-tree is built
with `copy_data=True`.
leafsize : positive int
The number of points at which the algorithm switches over to
brute-force.
m : int
The dimension of a single data-point.
n : int
The number of data points.
maxes : ndarray, shape (m,)
The maximum value in each dimension of the n data points.
mins : ndarray, shape (m,)
The minimum value in each dimension of the n data points.
size : int
The number of nodes in the tree.
Constructeur(s)
Liste des attributs statiques
Attributs statiques hérités de la classe cKDTree
boxsize, data, indices, leafsize, m, maxes, mins, n, size, tree
Liste des opérateurs
Opérateurs hérités de la classe object
__eq__,
__ge__,
__gt__,
__le__,
__lt__,
__ne__
Liste des méthodes
Toutes les méthodes
Méthodes d'instance
Méthodes statiques
Méthodes dépréciées
count_neighbors(self, other, r, p=2.0, weights=None, cumulative=True) |
Count how many nearby pairs can be formed. [extrait de count_neighbors.__doc__] |
innernode(ckdtreenode) |
|
leafnode(ckdtree_node=None) |
|
node(ckdtree_node=None) |
|
query(self, x, k=1, eps=0, p=2, distance_upper_bound=inf, workers=1) |
Query the kd-tree for nearest neighbors. [extrait de query.__doc__] |
query_ball_point(self, x, r, p=2.0, eps=0, workers=1, return_sorted=None, return_length=False) |
Find all points within distance r of point(s) x. [extrait de query_ball_point.__doc__] |
query_ball_tree(self, other, r, p=2.0, eps=0) |
|
query_pairs(self, r, p=2.0, eps=0, output_type='set') |
Find all pairs of points in `self` whose distance is at most r. [extrait de query_pairs.__doc__] |
sparse_distance_matrix(self, other, max_distance, p=2.0, output_type='dok_matrix') |
Compute a sparse distance matrix. [extrait de sparse_distance_matrix.__doc__] |
Méthodes héritées de la classe cKDTree
__getstate__, __init_subclass__, __reduce_cython__, __setstate__, __setstate_cython__, __subclasshook__
Méthodes héritées de la classe object
__delattr__,
__dir__,
__format__,
__getattribute__,
__hash__,
__reduce__,
__reduce_ex__,
__repr__,
__setattr__,
__sizeof__,
__str__
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :