julia - Julia:searchsorted 的矢量化版本
问题描述
对于 array 中的每个值B
,如何A
通过一个函数调用找到 array 中最接近的值,类似于searchsorted(A, B)
numpy.
解决方案
searchsortedfirst.(Ref(A),B)
应该给你想要的结果。例子:
julia> A = [1, 2, 2, 4, 4, 4, 4, 4, 9, 10];
julia> B = [10, 6, 9];
julia> searchsortedfirst.(Ref(A), B)
3-element Array{Int64,1}:
10
9
9
比较np.searchsorted
:
julia> using PyCall
julia> np = pyimport("numpy");
julia> np.searchsorted(A,B)
3-element Array{Int64,1}:
9
8
8
其中(直到 Python 的基于 0 的索引)是等效的。
解释:做
什么searchsortedfirst.(Ref(A),B)
?
圆点告诉 Julia 广播searchsortedfirst
呼叫。但是,我们必须确保A
在每次调用中仍然将其视为数组(我们希望A
成为广播下的标量)。这可以通过包装A
在Ref
.
推荐阅读
- python - 如何检查没有参数发送到 Python 中的函数
- swift - Xcode 我收集视图我在 cellForRowAtIndexpath 函数中排队 urlsession 数据任务
- sql - 如何根据事件日志表在一天结束时获取每个状态的用户总数?
- javascript - printContent 未在 HTMLInputElement.onclick 中定义
- python - 在 Python 中像字典一样在树中向下遍历
- .net - OData 查询到 SQL 查询
- asp.net-core - 如何访问 Kestrel Web 服务器在 .NET Core HealthCheck 类中监听的端口
- android - onActivityResult 没有在后按时被调用
- laravel - Laravel Eloquent:根据消息获取对话框
- functional-programming - 是否有状态延续或已保存堆的延续之类的东西?