Python — удобный и универсальный язык, но его скорость иногда оставляет желать лучшего. Если ваш код тормозит, а переписывать его на C++ не хочется, есть способ ускориться.
Numba — это JIT-компилятор, который быстро превращает Python-код в машинные инструкции. Особенно хорошо работает с числовыми вычислениями и массивами NumPy. Главное — вам почти не придется менять код. Просто добавьте декоратор @jit, и функция начнет работать быстрее.
Как это выглядит
Он поддерживает:
— NumPy-массивы, которых нет в стандартной библиотеке Python.
— Кортежи с элементами разных типов.
— Типизированные словари numba.typed с ключами и значениями одного типа.
— Строки (str) и байты (bytes) для работы с текстовыми данными.
— Списки Python с элементами одного типа.
А еще Numba умеет векторизировать вычисления — выполнять операции сразу над блоками данных, избавляя от лишних циклов. В статье разбираемся, как это работает и какие еще есть способы разгона кода: https://go.skillfactory.ru/AJCqpg
#python @skillfactory
Numba — это JIT-компилятор, который быстро превращает Python-код в машинные инструкции. Особенно хорошо работает с числовыми вычислениями и массивами NumPy. Главное — вам почти не придется менять код. Просто добавьте декоратор @jit, и функция начнет работать быстрее.
Как это выглядит
from numba import jit
@jit
def my_function(x):
return x * 2
При первом запуске Numba компилирует функцию, а затем использует кэш, что значительно ускоряет выполнение.Он поддерживает:
— NumPy-массивы, которых нет в стандартной библиотеке Python.
— Кортежи с элементами разных типов.
— Типизированные словари numba.typed с ключами и значениями одного типа.
— Строки (str) и байты (bytes) для работы с текстовыми данными.
— Списки Python с элементами одного типа.
А еще Numba умеет векторизировать вычисления — выполнять операции сразу над блоками данных, избавляя от лишних циклов. В статье разбираемся, как это работает и какие еще есть способы разгона кода: https://go.skillfactory.ru/AJCqpg
#python @skillfactory
👍6👾2