Size: a a a

Язык программирования Julia / Julia programming language

2021 January 22

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
#argmax #indmax

на всякий случай ванлайнер для поиска максимизирующего индекса

indmax(f, iter) = reduce((x, y) -> f(x[2]) > f(y[2]) ? x : y, enumerate(iter))[1]
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
На самом деле из него вылезает одна неприятная особенность текущего argmax (ну и данного indmax)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Он на самом деле возвращает первый (или последний, это как реализовать) индекс, который максимизирует функцию.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
То есть по хорошему надо ещё добавлять allindmax или что-то в таком духе.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
это и к поиску максимального элемента тоже относится
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
findmax(length, ["..."])
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
не только к индексу
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Да.
Поэтому это всё сейчас неконсистентно.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Как превратить t = (a=[1,2,3], b=[5,6,7])
в v = [(a=1, b=5), (a=2, b=6), (a=3, b=7)] ?
Имена теряются, если просто делать v = collect(zip(t...))
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
то что возвращает первый элемент - это мелочи, думаю :)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Зависит.
Для ML - сто процентов пофигу, они с флоатами работают, там шансов иметь больше одного значения ноль.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
что ещё-то maximum(...) должен возвращать?
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А кто с интами работает - вот там да, нужно наверное иногда массивами индексы возвращать.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Viktor G.
Как превратить t = (a=[1,2,3], b=[5,6,7])
в v = [(a=1, b=5), (a=2, b=6), (a=3, b=7)] ?
Имена теряются, если просто делать v = collect(zip(t...))
NamedTuple{keys(t)}.(zip(t...))
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну или (NamedTuple{keys(t)}(x) for x in zip(t...)) если генератор нужен (не хочется материализовывать)
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
спасибо!
источник

RD

Ruben Diaz in Язык программирования Julia / Julia programming language
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Viktor G.
спасибо!
Но вообще, если такие вопросы начали появляться, то возможно есть смысл посмотреть в сторону StructArrays.jl

julia> using StructArrays

julia> t2 = StructArray(t)
3-element StructArray(::Vector{Int64}, ::Vector{Int64}) with eltype NamedTuple{(:a, :b),
Tuple{Int64, Int64}}:
(a = 1, b = 5)
(a = 2, b = 6)
(a = 3, b = 7)

julia> t2[1]
(a = 1, b = 5)

julia> t2.a
3-element Vector{Int64}:
1
2
3


То есть без всяких вымудриваний, можно во всех направлениях крутить.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
это да, но хотелось без него сделать
источник
2021 January 24

M

Mahnaz in Язык программирования Julia / Julia programming language
Can you install Plots pkage in julia 1.5.3-1?
источник