Как использовать 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]""") # Отрисовка убывающего графика
Построение нескольких графиков
Объявление функции для построения графиков.
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)""")
plot(py"""t1""", py"""f(t1)""")
plot!(py"""t2""", py"""f(t2)""")
Также имеется возможность импорта библиотек 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)
Из этого примера видно, что мы можем работать также и с векторными значениями и выполнять их обработку не только при помощи функционала Engee, julia, но и при помощи Python.