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
, что (до индексации на основе 0 в Python) эквивалентно.
Объяснение: Что делает searchsortedfirst.(Ref(A),B)
?
Точка указывает Джулии на передачу вызова searchsortedfirst
.Однако мы должны убедиться, что A
все еще обрабатывается как массив в каждом вызове (мы хотим, чтобы A
был скаляром при широковещании).Это может быть достигнуто путем упаковки A
в Ref
.