Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy cdist()是否有效?_Python_Performance_Numpy_Scipy - Fatal编程技术网

Python scipy cdist()是否有效?

Python scipy cdist()是否有效?,python,performance,numpy,scipy,Python,Performance,Numpy,Scipy,我查看了这个函数的实现,我看到它只是使用循环。我只对euclidean/sqeuclidean选项感兴趣。 正如您在本文中所看到的:,这个函数的输出可以通过矩阵乘法来完成,这对我来说似乎比循环更有效 有人能帮我澄清这个问题吗 以下是实现结果输出的c代码: for (i = 0; i < mA; i++) { for (j = 0; j < mB; j++, dm++) { u = XA + (n * i); v = XB + (n * j);

我查看了这个函数的实现,我看到它只是使用循环。我只对
euclidean/sqeuclidean
选项感兴趣。
正如您在本文中所看到的:,这个函数的输出可以通过矩阵乘法来完成,这对我来说似乎比循环更有效

有人能帮我澄清这个问题吗

以下是实现结果输出的c代码:

for (i = 0; i < mA; i++) {
    for (j = 0; j < mB; j++, dm++) {
        u = XA + (n * i);
        v = XB + (n * j);
        *dm = seuclidean_distance(var, u, v, n);
    }
}
(i=0;i{ 对于(j=0;j再看一次:只有当度量是用户提供的可调用度量时(在这种情况下,唯一可能的实现是循环),才适用于循环,而不是当它是欧几里德度量之一的已知度量时。@pv谢谢,我现在就检查一下。最终答案可能是它仍然适用于循环,但是用C写的。数值稳定性是一个很好的理由,不按照你链接的文章所建议的方式做事,原因类似于为什么不使用计算方差;b=1e15,现在计算
(a-b)**2和
a**2+b**2-2*a*b
。惊讶您刚刚看到(缺乏)工作中的数值稳定性。因此,除非您确定这种类型的问题不会发生在您的数据集中,否则最好牺牲性能来获得正确性。