本文简要介绍 python 语言中 scipy.spatial.KDTree.count_neighbors
的用法。
用法:
KDTree.count_neighbors(other, r, p=2.0, weights=None, cumulative=True)#
计算附近可以形成多少对。
计算可以形成的对数
(x1,x2)
,其中x1
来自self
和x2
来自other
,其中distance(x1, x2, p) <= r
。self
和other
上的数据点可选地由weights
参数加权。 (见下文)这改编自 Gray 和 Moore [1] 说明的“two-pointcorrelation”算法。请参阅注释以进行进一步讨论。
- other: KD树
要从中绘制点的另一棵树可以是与自身相同的树。
- r: 浮点数或一维浮点数数组
产生计数的半径。使用单个树遍历搜索多个半径。如果计数是非累积的(
cumulative=False
),r
定义 bin 的边,并且必须是非递减的。- p: 浮点数,可选
1<=p<=无穷大。使用哪个 Minkowski p-norm。默认 2.0。如果可能发生溢出,有限的大 p 可能会导致 ValueError。
- weights: tuple、数组 或 None,可选
如果没有,pair-counting 未加权。如果作为元组给出, weights[0] 是
self
中点的权重,而 weights[1] 是other
中点的权重;任何一个都可以是 None 表示这些点是未加权的。如果作为 数组 给出,权重是self
和other
中点的权重。为此,self
和other
必须是同一棵树。如果self
和other
是两棵不同的树,则会引发ValueError
。默认值:无- cumulative: 布尔型,可选
返回的计数是否是累积的。当累积设置为
False
时,该算法经过优化以使用r
指定的大量 bin (>10)。当cumulative
设置为 True 时,算法经过优化以使用少量r
。默认值:真
- result: 标量或一维数组
对数。对于未加权计数,结果为整数。对于加权计数,结果是浮点数。如果累积为 False,则
result[i]
包含带有(-inf if i == 0 else r[i-1]) < R <= r[i]
的计数
参数 ::
返回 ::
注意:
Pair-counting是用于从由对象位置组成的数据集中计算两点相关函数的基本操作。
两点相关函数测量物体的聚类,并广泛应用于宇宙学中,以量化宇宙中的大尺度结构,但它对于也发生物体自相似组装的其他领域的数据分析可能很有用。
D
的两点相关函数的 Landy-Szalay 估计器测量D
中的聚类信号。 [2]例如,给定两组对象的位置,
objects
D
(data) 包含聚类信号,并且不包含信号的对象
R
(随机),
其中括号表示周围有限箱中两个数据集之间的计数对
r
(距离),对应设置累积=假, 和f = float(len(D)) / float(len(R))
是来自数据的对象数与随机数之间的比率。这里实现的算法大致基于[1]中说明的dual-tree算法。我们根据
cumulative
的设置在两种不同的 pair-cumulation 方案之间切换。我们在cumulative == False
时使用的方法的计算时间不随 bin 总数变化。cumulative == True
的算法与 bin 数量成线性比例,但仅使用 1 或 2 个 bin 时速度稍快。 [5]。作为朴素pair-counting的扩展,加权pair-counting计算权重的乘积而不是对数。加权pair-counting 用于估计标记的相关函数([3],第 2.2 节),或正确计算每个距离箱的数据平均值(例如,[4],第 2.1 节关于红移)。
[2]Landy 和 Szalay,“角度相关函数的偏差和方差”,《天体物理学杂志》,1993,http://adsabs.harvard.edu/abs/1993ApJ…412…64L
[3]Sheth、Connolly 和 Skibba,“星系形成模型中的显著相关性”,Arxiv e-print,2005,https://arxiv.org/abs/astro-ph/0511773
[4]Hawkins 等人,“2dF 星系红移调查:相关函数、奇特速度和宇宙物质密度”,皇家天文学会月刊,2002 年,http://adsabs.harvard.edu/abs/2003MNRAS.346…78H
例子:
您可以计算距离内两个kd-trees 之间的邻居数:
>>> 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) >>> kd_tree1.count_neighbors(kd_tree2, 0.2) 1
此数字与
query_ball_tree
计算的总对数相同:>>> indexes = kd_tree1.query_ball_tree(kd_tree2, r=0.2) >>> sum([len(i) for i in indexes]) 1
相关用法
- Python SciPy KDTree.query_pairs用法及代码示例
- Python SciPy KDTree.sparse_distance_matrix用法及代码示例
- Python SciPy KDTree.query_ball_tree用法及代码示例
- Python SciPy KDTree.query_ball_point用法及代码示例
- Python SciPy KDTree.query用法及代码示例
- Python SciPy KroghInterpolator.derivatives用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy ClusterNode.pre_order用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy FortranFile.read_record用法及代码示例
- Python SciPy ndimage.correlate用法及代码示例
- Python SciPy special.exp1用法及代码示例
- Python SciPy special.expn用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy ndimage.morphological_gradient用法及代码示例
- Python SciPy distance.sokalmichener用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy csc_array.diagonal用法及代码示例
- Python SciPy fft.idctn用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy hierarchy.ward用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.spatial.KDTree.count_neighbors。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。