- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要这个来进行模拟研究。
MWE:
x = rand(10,4)
y = rand(5,4)
对于 y 中的每一行,我想在 x 中找到其 5-nn 的索引,即结果应该是一个 5×5 的索引矩阵。
最佳答案
事实证明这是不完整的,但我还是会发布我的尝试。
在没有分配的情况下将矩阵“重新解释”为向量的向量在概念上很简单,但需要实现新的数组类型。 JuliennedArrays.jl 提供了这种类型的 Sliced
。
IHMO 最简单的实现是这个:
mapslices(y, dims=2) do row
partialsortperm(Slices(x, 2), 1:5, by=x -> norm(x - row))
end
仍然分配一些东西;这必须至少是 partialsortperm
和中间行使用的索引向量。
我试图在这个函数中去掉它:
function knnslice!(result, x, y, k)
result_sliced = Slices(result, 2)
x_sliced = Slices(x, 2)
y_sliced = Slices(y, 2)
indices = collect(axes(x, 1))
for i in eachindex(result_sliced, y_sliced)
result_sliced[i] .= partialsortperm!(indices, x_sliced, 1:k, by=x -> norm(x - y_sliced[i]))
end
return result
end
knnslice(x, y, k) = knnslice!(similar(x, Int, size(y, 1), k), x, y, k)
但结果几乎没有改进,至少在与示例数据大小的数组进行比较时是这样。我不确定如何通过这种实现方式进一步降低这种情况。
缺少的部分是一个直接作用于切片的 sortperm 实现。对于较小的 k
,这应该可以通过对 x 进行一次迭代并将结果行维护为该大小的缓冲区(甚至是小堆)而不是执行部分排序来实现。像这样的东西:
function knnslice!(result, x, y, k)
for (i_r, i_y) in zip(axes(result, 1), axes(y, 1))
result_row = @view(result[i_r, :])
fill!(result_row, 1)
f(r) = norm(@view(x[r, :]) - @view(y[i_y, :]))
for j_x in axes(x, 1)
heappush!(result_row, j_x; by=f)
end
end
return result
end
heappush!
应该按 by
的顺序插入有界最小堆(类似于 Python 中的 heapq
,但保持队列的大小固定).
关于julia - 有什么方法可以免费找到 K 最近邻分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70602586/
前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。今天大姚给大家分享一款.NET Avalonia开源、免费、跨平台、快速的Git可视化管理工
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
正在学习有关 C 语言链接列表的教程。我已编译此代码并通过 valgrind 运行它。它显示了 4 次分配和 0 次释放,这是我理解的。我需要知道如何正确调用 free() 来释放分配。 代码示例:l
正如标题所说,我需要一个搜索引擎...用于mysql 搜索。我的网站是基于 PHP 的。 我打算使用 sphinx,但我的托管公司不支持全文索引! 所以一个没有全文的搜索引擎! 它应该是相当强大的,并
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 2 年前。
我正在寻找稳定和成熟的免费/开源库来比较两个图像。 我找到了这个,但我想知道你是否使用更好的! Similar images finder - .NET Image processing in C#
我有一个通用链表实现,其中包含一个指向数据的 void* 的节点结构和一个包含对头的引用的列表结构。现在这是我的问题,链表中的一个节点可能通过其 void* 持有对另一个链表的引用。当我释放包含较小列
前言 在日常工作中PDF文档的处理往往受限于其固有的格式,使得用户在编辑、合并、剪裁等方面面临诸多不便。今天大姚给大家分享一个.NET开源、免费、功能强大的 PDF 处理工具:PDF 补丁丁(PDF
前言 最近发现DotNetGuide技术社区交流群有不少小伙伴在学习Avalonia,今天大姚给大家分享一款开源、免费、美观的 Avalonia UI 原生控件库:Semi Avalonia。
前言 今天大姚给大家分享一款开源(MIT License)、免费、现代化风格的WPF UI控件库:ModernWpf。 项目介绍 ModernWpf是一个开源项目,它为 WPF 提供了一组现代化
LiveCharts2 LiveCharts2是一个.NET开源(MIT License)、简单、灵活、交互式且功能强大的.NET图表、地图和仪表,现在几乎可以在任何地方运行如:Maui、Uno P
前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、实用的多功能原神工具箱,旨在改善桌面端玩家的游戏体验:胡桃工具箱。 工具箱介绍 胡桃工具箱是一款.NET开源(MIT
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
当我这样做时,我的 meteor 应用程序运行的免费服务器的规范是什么。 meteor deploy myapp.meteor.com 规范方面 Storage size Max bandwidth
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
如果可能,我可以使用任何网络服务免费存储少量数据(考虑 XML 或 JSON)? 我想我想创建一个小型待办事项应用程序,只是探索/学习(最好是免费的),它还可以将数据备份到云端,以便他们可以在智能手机
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!