- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 创建一个距离邻近矩阵10060 记录/点,其中每个记录/点有 23 使用欧氏距离作为度量的属性。我使用嵌套 for 循环编写代码来计算每个点之间的距离(导致 (n(n-1))/2) 计算)。花了很长时间(大约8分钟)。当我使用 cdist 时,它花费的时间要少得多( 仅 3 秒 !!! )。当我查看源代码时,cdist 还使用嵌套的 for 循环,而且它进行了 n^2 次计算(这大于我的逻辑所做的比较次数)。 是什么让 cdist 执行得更快并给出正确的输出? 请帮我理解。提前致谢。
最佳答案
你在哪里阅读的源代码? python code调用(如果您在默认 metric='euclidean'
情况下一直遵循它)c 代码
static NPY_INLINE int
cdist_seuclidean(const double *XA, const double *XB, const double *var,
double *dm, const npy_intp num_rowsA, const npy_intp num_rowsB,
const npy_intp num_cols)
{
npy_intp i, j;
for (i = 0; i < num_rowsA; ++i) {
const double *u = XA + (num_cols * i);
for (j = 0; j < num_rowsB; ++j, ++dm) {
const double *v = XB + (num_cols * j);
*dm = seuclidean_distance(var, u, v, num_cols);
}
}
return 0;
}
seuclidean_distance
是
static NPY_INLINE double
seuclidean_distance(const double *var, const double *u, const double *v,
const npy_intp n)
{
double s = 0.0;
npy_intp i;
for (i = 0; i < n; ++i) {
const double d = u[i] - v[i];
s += (d * d) / var[i];
}
return sqrt(s);
}
for
循环很慢,它们会占用大量开销,永远不应该与 numpy 数组一起使用,因为 scipy/numpy 可以利用
ndarray
中保存的底层内存数据。以python不能的方式对象。
关于python - 为什么来自 scipy.spatial.distance 的 cdist 如此之快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630056/
我正在运行最新的 neo4j v2,并安装了空间插件。我已经设法索引了我需要在地理索引中索引的几乎所有节点。我正在努力解决的问题之一是如何轻松检查节点是否已被编入索引? 我找不到任何 REST 端点来
我想知道两个空间库 - Microsoft.Spatial 和 System.Spatial 之间有什么区别? 当我查看这两个代码时,我看到几乎相同的类。两者都有例如 GeographyPoint 或
这两种算法有什么区别? 最佳答案 cKDTree是 KDTree 的子集,用 Cython 封装的 C++ 实现,因此速度更快。 他们每个人都是 a binary trie, each of whos
通常,scipy.spatial.ckdtree 的运行速度比 scipy.spatial.kdtree 快得多。 但就我而言,scipy.spatial.ckdtree 的运行速度比 scipy.s
我想在我的代码中使用 scipy.spatial.distance.cosine。如果我执行类似 import scipy.spatial 或 from scipy import spatial 的操
我有一个应用程序,它接收许多表征 3 维空间和时间过程的数据。然后过滤这些数据并创建 Action ,然后将 Action 发送到执行 Action 的进程。冲洗并重复。 目前,我有一组自定义过滤器,
您好,有一些关于空间和时间局部性的问题。我在类(class)理论中读到过 空间局部性 如果引用了一项,则很快就会引用附近的其他地址的可能性 时间局部性 在某个时间点被引用的一项往往很快就会再次被引用。
我一直在阅读相关的 holotoolkit 空间理解代码,但找不到与获取已找到表的维度相关的任何内容。我关注了this great tutorial将 table 添加为自定义形状。但后来陷入困境。我
我有 2 个变量 x 和 y,它们是 [0,1] 处的笛卡尔坐标,z 是 a (连续)变量在这些坐标处。 z 向量有一些重要的异常值 x<-sample(seq(0,1,0.001), replace
有人有使用lucene的空间搜索组件(lucene 3.0)的经验吗? 我尝试了一个非常简单的示例,但无法让搜索返回任何内容,请参阅下面的所有代码 import java.io.IOException
SPATIAL 优于 BOUNDING 的优势 使用 SPATIAL 查询而不是使用边界框的简单 MySQL 查询有什么好处? 例如,如果我想找到属于某个多边形的所有位置: 像这样: 边界框示例 SE
我想知道是否有现成的工具,或者是否有人开发了一种方法来确定空间形状的人轴地理方向。一般来说,我希望能够确定一个形状是东西方向还是南北方向,但理想情况下,每个形状都会有一个角度或度数测量值。 ArcGI
所以,我的集合包含 25,000 个点和 15,000 个多边形。我猜多边形相当大,世界上大部分陆地都被覆盖了。 积分恢复得很好。当我执行如下查询时,集合中的第一个多边形返回正常: SELECT TO
我的应用程序从 map 文件加载约 100k 项(矩形)的集合,然后构建 MX-CIF 四叉树作为快速查找的索引。四叉树是在启动时构建的,其内容在运行时不会更改。 (在 MX-CIF 四叉树中,项目由
我们安装了 Oracle Enterprise Edition 10,正如我们的 DBA 向我解释的那样,Oracle Enterprise 安装包括所有扩展,您只需根据所使用的内容获得许可。 我们发
在下面的数据中,我正在寻找一个查询,以便可以按最近的邻居加入2个表的结果。 dbo.Interests表中的某些结果将不在dbo.Details表中, 这个问题找到单个点的k个最近点,我需要此查询来进
我最近试图在本地运行我的应用程序来测试一些东西,但由于装配问题我无法做到。具体来说: Could not load file or assembly 'System.Spatial, Version=
我有一个带有 Hibernate 和 Hibernate Spatial 的 Spring Boot 项目。该应用程序的目标之一是查找,查找当前用户周围区域中的所有匹配项。 @Entity(name
我正在尝试确定 MySQL Spatial 5.6.12 的公制系统. 例如,我创建了下表来存储多个记录的点几何图形。 CREATE TABLE POINTS_DATA( RECORD_ID
我是多边形和空间新手,我在 php/MySQL 中编码 我正在努力寻找适合 Google 的术语。 有很多关于纬度/经度点周围的项目/地点的教程,我对此很满意。 我想学习如何在矩形内的两个纬度/经度点
我是一名优秀的程序员,十分优秀!