Рубрики
Без рубрики

Заставит ли этот быстрый урок в Джулии вам забыть о Python для ваших потребностей в данных?

Я был тяжелым пользователем Python в течение некоторого времени, поэтому, когда я узнал о Джулии, я подумал, что Prosp … Tagged DataScience, Julia, Python, Learning.

Я был тяжелым пользователем Python в течение некоторого времени, поэтому, когда я узнал о Юлия Я думал, что перспектива, которую он представил, была очень интересной. Простота в синтаксисе, но мощность выполнения ближе к C, но, возможно, препятствие для победы было слишком высоким. Python уже имеет массовое усыновление, существует огромная экосистема с модулями для любой задачи, о которой вы можете подумать, и даже люди из мира R, похоже, мигрируют в нее. Кроме того, Matlab, кажется, продолжает иметь сильное присутствие в научных кругах. Итак, какой стимул изменить? Будет ли Джулия возникнуть и стать главным актером в научном сообществе?

Действительно, это уже довольно актуально, если вы Посмотрите на тематические исследования Вы увидите, как такие компании, как НАСА, Cisco или Pfizer, уже используют его в серьезных проектах.

Хотя я не предлагаю выбросить весь ваш проект Python в окно и переписать все в Джулии, я думаю, что язык достаточно интересен, чтобы заслужить его функциональность. Так что, если вы слышали комментарии о нестабильности или пакетах недостаточно зрелых, вы можете сделать свои собственные выводы после того, как попробовали.

Монтаж

После установки Юлия С их сайта (или если вы находитесь на Mac, делая Brew Cask Установите Юлию ), Я собираюсь предположить, что вам также нужна среда ноутбука. Для этого у вас есть два варианта. Вы можете установить настольное приложение Nteract или, если вы так склонны, придерживайтесь классической ноутбука Юпитера (или лаборатории Юпитера), для которой вам нужно установить Python, чтобы вы могли сделать PIP3 Установить jupyterlab .

Когда у вас есть приложение для ноутбуков, вам все равно нужна реальная ядра ноутбука в Джулии, так что перейдите на свой терминал и введите Юлия . Вы должны увидеть это:

               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.5.1 (2020-08-25)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia>

Теперь введите ] Символ, и подсказка изменится на это:

(@v1.5) pkg>

Итак, вы можете напечатать

(@v1.5) pkg> add IJulia

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

Начало работы с языком

Основные вещи – это то, что вы можете ожидать:

# Printing
println("Hello")

# Variables
my_name = "Ruben"

typeof(my_name) # String

# Arithmetic
sum = 3 + 7
difference = 10 - 3
product = 5 * 5
quotient = 100 / 10
power = 10 ^ 2
modulus = 101 % 2

# String interpolation
interp = "My name is $my_name"

Некоторые интересные причуды:

# Note that single quote denote a character
typeof('a') # char
typeof("a") # string

# Concatenations can force transformations
# Like in this case, from int to string

string(10, " can also be converted")
# outputs: "10 can also be converted"

Несколько хороших структур:

# Dictionary
phonebook = Dict("Ruben" => 555234898, "Santa Claus" => 00358787876)

# Tuple
animals = ("dog", "donkey")

animals[1] # Outputs "dog" because Julia is 1 indexed!!!!

# Mix types
farm2 = ["chicken", "hen", "horse", "cow", 56]

Управляющие структуры и функции

# classic while. What you would expect
n = 0
while n < 10
    n += 1
    println(n)
end

# the for is quite pythonic
for n in 1:10
    println(n)
end

Теперь что -то новое. Посмотрите на этот путь, чтобы создать векторы, густонаселенные или пустые. Мы можем сделать это либо со случайными данными, либо конкретными данными

# a 5 rows 3 cols vector with random data
r, c = 5,3
A = rand(r, c)

# same but with zeroes
Z = zeros(r, c)

Из-за этого:

# We can have a for loop with two conditions in that vector
for i in 1:m, j in 1:n
    A[i,j] = i + j
end

# Or something looking like a Python list comprehension
C = [i + j for i in 1:m, j in 1:n]

Наконец, функции могут быть определены по -разному

function hi(name)
    println("Hi $name")
end

hi2(name) = println("Hi $name")

hi3 = name -> println("Hi $name")

# and you would call them as you expect
hi("world")
hi2("world")
hi3("world")

А как насчет DataFrames

Если вы собираетесь работать с DataFrames, вам нужно будет знать, как установить (и импортировать пакет). Мы уже видели один способ установить (когда мы добавили ijulia ранее)

Другой способ из вашего кода:

using Pkg
Pkg.add("CSV")
Pkg.add("DataFrames")

Хотя вы, возможно, захотите сделать это с другим вариантом (через терминал), чтобы не выполнять это каждый раз, когда вы запускаете свой код. Обычно, когда вы отправляете проект Julia, у вас будет .toml Файл со всеми зависимостями, так что вы можете сразу захватить их, выпустив ] создание создания инструкция

После того, как вы установили модуль DataFrames (и CSV, если вам это нужно), мы можем создавать DataFrames из файлов или из наших собственных конструкций данных. Для примера я использую этот файл

df = DataFrame(CSV.File("sp500.csv"))

Вы можете использовать довольно знакомые функции, чтобы получить головы и длится:

# 3 is how many rows you want to display
head(df, 3)
first(df, 3)
last(df, 3)

Вы можете получить имена столбцов

names(df)

И выберите конкретные столбцы

df["column_name"]

Выбор строк использует индекс массива для того, что вам нужно. Например, это первые 5 строк и первые 3 столбца

df[1:5, 1:3]

Или вы можете получить очень конкретный поиск. Просто покажите мне ряды, где символ либо Ммм или Абт

filter(row -> row.symbol in ["MMM", "ABT"], df)

Обобщить

Хотя в этой статье вы могли бы подумать, что самый большой плюс Юлии заключается в том, что в ней очень хороший синтаксис, правда в том, что я только царапаю поверхность, поскольку его реальная польза намного глубже, чем это. Это не только вопрос скорости (но и)

Взгляните на статью о Почему мы создали Джулию иметь более четкий взгляд.

Джулия кажется хорошим решением проблемы с двумя языками с Python (если вам нужна скорость, вам нужно вернуться к расширениям C), у нее есть модули для большинства задач, которые вам могут понадобиться, особенно в области научных вычислений (включая ML), и она чувствует себя стабильно и хорошо поддерживается.

Если вы счастливый пользователь Python/R/Matlab, вы можете не переключаться в одночасье, но я все еще думаю, что это очень свежее и интересное предложение.

Оригинал: “https://dev.to/rubenwap/will-this-quick-julia-lesson-make-you-forget-about-python-for-your-data-needs-4d1c”