Size: a a a

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

2020 July 06

RS

Roman Samarev in Язык программирования Julia / Julia programming language
https://github.com/tejasvaidhyadev/ALBERT.jl - свежий, но явно не готовый к использованию код на базе прошлогодней реализации Transformers
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Боюсь показаться дебилом, но подскажите пожалуйста. Есть массивы, списки, кортежи, словари. Объясните для чего на практике нужны 3 последних? Чем они отличаются я понимаю, но пользуюсь массивами и все. Для чего нужно остальное на практике?
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
а что такое массив
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
а что такое массив
Матрица (математическая) mxn
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
ну там же элементы одного и того же типа лежат?
источник

VM

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

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
а как быть тогда с ситуацией, когда нужно в каждом столбце свой тип хранить (как в dataframes?)
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
а как быть тогда с ситуацией, когда нужно в каждом столбце свой тип хранить (как в dataframes?)
ОК. А кортежи и словари?
источник

VG

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

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
ну кортеж я использую, когда например важно ускорить какое-то место: я знаю, что у меня там длина фиксированная, мне не нужно например менять элементы или добавлять их
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
по-моему, списков в Джулии нет
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Viktor G.
по-моему, списков в Джулии нет
источник

AL

Anatoly Levenchuk in Язык программирования Julia / Julia programming language
Viktor G.
по-моему, списков в Джулии нет
You can use a vector as a list – you can do all of the standard dequeue operations on it, including push!, pop!, shift! and unshift!. — это сказал Karpinski
источник

АО

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

Например, я недавно работал с постами, типичный пост состоит из названия, автора, тела поста, даты публикации, ссылки на него.

Вот это все удобно завернуть в словарь, где ключами будут title, author и так далее. То есть формально конечно можно хранить это все в массиве и где-то помнить, что элемент 1 - это название, 2 - это автор и так далее, но это мягко говоря неудобно.

Конечно, в джулии важность словарей сильно меньше чем в питоне, потому что если набор ключей известен заранее, то проще завернуть в структуру. Но может так быть, что ключей очень много или они добавляются динамически и тогда лучше словаря структуры нет.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Что-то я не понял, ключи у вас - это кортеж из title, author и т.д., или вообще Any (произвольный набор)?
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
И почему обязательно нечисловой ключ?
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Андрей Оськин
Словари - это хранилища типа ключ-значение, их надо использовать тогда, когда ключ нечисловой.

Например, я недавно работал с постами, типичный пост состоит из названия, автора, тела поста, даты публикации, ссылки на него.

Вот это все удобно завернуть в словарь, где ключами будут title, author и так далее. То есть формально конечно можно хранить это все в массиве и где-то помнить, что элемент 1 - это название, 2 - это автор и так далее, но это мягко говоря неудобно.

Конечно, в джулии важность словарей сильно меньше чем в питоне, потому что если набор ключей известен заранее, то проще завернуть в структуру. Но может так быть, что ключей очень много или они добавляются динамически и тогда лучше словаря структуры нет.
Если числовые ключи распределены не по порядку, то тоже имеет смысл использовать словарь
источник

AK

Artem Korzhimanov in Язык программирования Julia / Julia programming language
Разница, грубо говоря, такая:
1) массив - быстрый доступ к произвольному аргументу, но медленное добавление элементов в середину
2) список - быстрое добавление элементов в любое место, но медленное обращение к произвольному аргументу
3) кортеж - если массив маленький и используется только локально, то объявив его кортежем можно выиграть в скорости (будет создан на стеке, а не в куче)
4) словарь - быстрое добавление в любое место, быстрый произвольный доступ, но данные не лежат последовательно, векторные операции работают неэффективно
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Viktor G.
Что-то я не понял, ключи у вас - это кортеж из title, author и т.д., или вообще Any (произвольный набор)?
Ключи - это просто строки. “title”, “author” и так далее.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Viktor G.
И почему обязательно нечисловой ключ?
Разумеется можно и с числовым ключом словари делать, но это имеет смысл если как правильно было замечено, числа не по порядку распределены. Если у вас ключи просто идут по порядку 1, 2, 3 то конечно лучше обычный vector использовать для хранения данных.

Лучше с точки зрения скорости выполнения алгоритма, технически разумеется никаких ограничений на вид ключа в словаре нет.
источник