Pythoner
Фотография
➡️Что такое Numba?
Numba - это JIT-компилятор (Just-In-Time), который преобразует Python и NumPy код в быстрый машинный код. Это позволяет значительно ускорить выполнение вычислительно-интенсивных задач.
➡️Как использовать Numba?
Использовать Numba очень просто! Вот пример:
from numba import jit
import numpy as np
@jit(nopython=True)
def sum_of_squares(arr):
sum = 0
for i in range(arr.shape[0]):
sum += arr[i]**2
return sum
# Пример использования
arr = np.arange(1000000)
result = sum_of_squares(arr)
print(f"Сумма квадратов: {result}")
⬆️Что происходит?
1️⃣Мы импортируем декоратор @jit из Numba
2️⃣Применяем декоратор к нашей функции
3️⃣Numba компилирует функцию при первом вызове
4️⃣Последующие вызовы используют скомпилированную версию
⬆️Результаты
На больших массивах Numba может ускорить код в десятки раз! Например, для массива из миллиона элементов:
- Обычный Python: ~1 секунда
- С Numba: ~0.01 секунды
➡️Советы по использованию
💬Используйте режим nopython=True для максимальной производительности
💬Numba лучше всего работает с числовыми типами данных и NumPy массивами
💬Избегайте использования Python-объектов внутри jit-функций
🐍Pythoner
41 · 2.1K ·