【发布时间】:2018-08-01 09:41:00
【问题描述】:
我想为 10060 个记录/点创建一个距离接近矩阵,其中每个记录/点具有 23 个使用欧几里德距离作为度量的属性。我使用嵌套的 for 循环编写代码来计算每个点之间的距离(导致 (n(n-1))/2) 计算)。花了很长时间(大约8分钟)。当我使用 cdist 时,它花费的时间要少得多(只需 3 秒!!!)。当我查看源代码时,cdist 还使用嵌套的 for 循环,而且它进行 n^2 计算(这比我的逻辑所做的比较次数要多)。 是什么让 cdist 执行得更快并提供正确的输出? 请帮助我理解。提前致谢。
【问题讨论】:
标签: python euclidean-distance scipy-spatial