Чтобы прочитать эту статью, требуется около 4 минут.
Я не должен был быть шокирован, увидев сотни людей, присоединившихся к группе в метро и открывших суперчленов, чтобы расширить группу. — Бенни Хуо
Собираюсь ли я, автор Kotlin, написать туториал по Джулии? —— Философ Чжэн Сяоксин
управление пакетами
Потому что API инсталляционного пакета после 0.7 и 1.0 отличается. Pkg больше не является встроенной глобальной переменной, и для установки пакетов требуется ручноеusing Pkgили нажмите]ключ для входаpkgмодель.
Если вам нужно вызвать другие встроенные пакеты Python, отличные от Conda (например,matplotlib, все верно, именно этот парень, он такой чертовски важный, что не встроенный ) .
И новое управление пакетами очень умное, из-за проблем с областью зависимостей вам все еще нужно быть в Джулии.Активно добавлятьConda — это пакет, вместо того, чтобы напрямую загружать пакет, который зависит от него, как раньше.using.
Например: если добавитьIJulia(полагатьсяCondapackage), после 1.0 нужно вручную добавить Conda в Pkg, а затем добавить пакет Python через Conda.add. Конечно, что, если я даже не удосужусь поиграть с Кондой? Также можно перейти на Python в каталоге Conda и pip установить matplotlib, чтобы загрузить соответствующий пакет.
Добавить с помощью Conda.add под окнамиmatplotlibСуществует определенная вероятность сбоя, пожалуйста, используйте встроенный Python Conda.jl для добавления пакетов... не спрашивайте меня, почему.
Я показываю скриншоты под Manjaro Deepin. Ведь линукс удобнее винды. Однако есть и другие ямы под Манджаро, отсутствие тк, ручная установка,sudo pacman -S tkпроблема решена.
режим pkg, нажмите ] для входа
(v1.0) pkg> add PyCall
(v1.0) pkg> add Conda
Вернитесь в режим REPL и добавьте соответствующий пакет
julia> using Pkg
julia> Pkg.add("PyCall")
julia> Pkg.add("Conda")
julia> using Conda
julia> Conda.add("matplotlib")
Во всяком случае, для того, чтобы иметь возможностьPyCallперечислить. затем используйте
using PyCall
@pyimport numpy as np
# 调用python 生成 从 1 到 10 的 10个数
x = np.linspace(1,10,10)
Распечатанный x выглядит так:
10-element Array{Float64,1}:
  1.0
  2.0
  3.0
  4.0
  5.0
  6.0
  7.0
  8.0
  9.0
 10.0
В этом случае x находится в ДжулииFloatтипизированный массив
Что это значит? Взаимодействие! Я вызвал функцию Python, и она фактически вернула массив Джулии, что очень изысканно. Тогда мы сможем приступить к работе.
Функции Джулии
Мы знаем, что в грамматике Джулии есть очень интересное место, то есть можно использовать数学表达式представлятькодиз表达式.
Это кажется немного запутанным, просто посмотрите на пример ниже.
- на других языках
^Символы обычно выражают побитовые символы, а Джулия выражает степени, что «очень интуитивно понятно». - В некоторых алгоритмах нам часто нужно использовать умножение, возведение в степень, коэффициент × переменная и т. д. Как играть в Джулию? Просто напишите прямо. Например:
 
Правильно, это означает $x^2+2x+1$ . Контент, написанный в LaTeX, который я использую здесь,$ x^2+2x+1 $, можно сказать, что он очень дружелюбен к математике.
Кроме того, здесь я написал return для удобства новичков, на самом деле функция Джулии по умолчанию возвращает последний оператор, когда return не прописан. То есть мы можем написать
function f(x::Int)
    x^2+2x+1
end
Конечно, зоркие друзья могли заметить, что на скриншоте выше есть желтая волнистая линия, которая очень раздражает. Можем посмотреть, что здесь написано:
Function with only one statementФункция имеет только одно выражение. Почему такая подсказка? Потому что у Джулии есть более простой способ написать это!
Если ваша «функция» относительно проста, то мы можем использовать функцию быстрого исправления в IDE JB, и после нажатия клавиши alt+Enter она будет преобразована в компактную функцию.
чтоcompact function? Давайте сначала посмотрим, что происходит с приведенным выше, когда мы нажимаем Enter:
идеально~
Вернитесь к вызову Python в начале.
Мы можем написать это так
using PyCall
@pyimport numpy as np
@pyimport matplotlib.pyplot as plt
x=np.linspace(0,2pi,1000)
y=np.sin(3x+4*np.cos(2x))
plt.plot(x,y)
plt.show()
успешный вызов
Наконец
Что мы узнали:
- компактный функциональный геймплей
 - вызов PyCall
 - Я знаю, что есть такой очень весёлый плагин на ведре семейства JB (。・∀・)ノ゙
 
Особая благодарность
@Археолог Тысяча миль замороженныхизice1000/julia-intellijПлагин обеспечивает поддержку Julia в IDEA, PyCharm и других IDE.