Документация Engee

Как использовать Python в скриптах Engee

В данном примере мы рассмотрим принципы взаимодействия с Python из среды Engee и сделаем несколько упражнений с графиками.

Начало работы

Выбор языка Python:

using PyCall
using Plots

Импорт вычислительной библиотеки NumPy:

py"""
import numpy as np # Фундаментальный пакет для научных вычислений
"""

Построение графиков

Построение графиков по точкам:

plot(py"""[1, 2]""",py"""[3, 4]""")# Отрисовка возрастающего графика
plot!(py"""[1, 2]""",py"""[4, 3]""") # Отрисовка убывающего графика

interactive-scripts/images/integrated_languages_UsingPythonInEngee/1e438aa72b1943065bb7e5dd5739e126ff0e85db

Построение нескольких графиков

Объявление функции для построения графиков.

py"""
def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t) # Математическая формула
"""

Объявление массивов.

py"""
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
"""

Построение графиков.

plot(py"""t2""", py"""np.cos(2*np.pi*t2)""")

interactive-scripts/images/integrated_languages_UsingPythonInEngee/5d4b16fe3a05cefd43db47c3fdc4ef0695342a56

plot(py"""t1""", py"""f(t1)""")
plot!(py"""t2""", py"""f(t2)""")

interactive-scripts/images/integrated_languages_UsingPythonInEngee/6ed7a7c74fa6be4a1ce8406b5f73126ae5203edf

Также имеется возможность импорта библиотек Python напрямую в Engee. Рассмотрим такой пример за счёт подключения библиотек Math и Numpy.

math = pyimport("math")
PyObject <module 'math' from '/usr/local/julia-1.9.3/conda/3/x86_64/lib/python3.10/lib-dynload/math.cpython-310-x86_64-linux-gnu.so'>

Для демонстрации работоспособности данного подхода воспользуемся функциями sin для констант и векторов.

math.sin(math.radians(90))
1.0
a = math.pi/4;
math.sin(a)
0.7071067811865475

Как мы видим из примера выше, можно задавать значения в Engee и далее их использовать, применяя функции Python.

a = [1,2,3]
numpy = pyimport("numpy")
a = numpy.sin(a)
3-element Vector{Float64}:
 0.8414709848078965
 0.9092974268256817
 0.1411200080598672
using Plots
plot(a)

interactive-scripts/images/integrated_languages_UsingPythonInEngee/ff8663c4de6d18d9431741703d09e39ad70c70ed

Из этого примера видно, что мы можем работать также и с векторными значениями и выполнять их обработку не только при помощи функционала Engee, julia, но и при помощи Python.

Вывод

В данном примере мы продемонстрировали возможности Engee в написании и реализации алгоритмов на Python. В современном мире эта опция очень востребована, так как Python очень популярен, и на этом языке реализован огромный объём функционала.