gpt4 book ai didi

python - scipy.cKDTree.sparse_distance_matrix 的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:16 25 4
gpt4 key购买 nike

我正在尝试使用scipy.cKDTree.sparse_distance_matrix计算一组点的相互距离。最终我想将其用于维度高达 1510**6 点,但作为示例,对于二维的 15 个数据点,我们期望距离矩阵有 15*15 个元素,其中 15 个元素为零。因此矩阵中有 210 个非零元素。但是 sparse_distance_matrix 仅返回 160 个非零值:

import numpy as np
from scipy.spatial import cKDTree
NP=15
dimension=2
seed=1
state = np.random.RandomState(seed)
pts=state.random_sample([NP,dimension])
tree=cKDTree(pts)
f = cKDTree.sparse_distance_matrix(tree,tree,5.)
print np.vstack(f.nonzero()).T.shape[0]

160

我不明白我错过了什么。请注意,我已将 max_distance 设置为 5.0,但可能的最长距离是 sqrt(2),因此不应将任何条目替换为零。我正在使用 SciPy 版本“0.13.3”。

编辑:

更新到0.16解决了这个问题。

最佳答案

如@ Warren Weckesser在他的评论中提到,这是由于 issue在旧版本的 scipy.在 scipy 0.16 中一切都很好!

关于python - scipy.cKDTree.sparse_distance_matrix 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com