Если у вас есть ресурсоемкая задача для процессора и вы хотите использовать все доступные ядра, то
Также можно не указывать параметр
📲 Мы в MAX
👉@BookPython
multiprocessing.Pool - это то, что вам нужно. Он создает несколько процессов и автоматически распределяет между ними задачи. Просто создайте пул с Pool(number_of_processes) и выполните p.map с списком входных данных.
import math
from multiprocessing import Pool
inputs = [i ** 2 for i in range(100, 130)]
def f(x):
return len(str(math.factorial(x)))
# Однопоточное выполнение
%timeit [f(x) for x in inputs]
# 1.44 s ± 19.2 ms per loop (...)
# Параллельное выполнение с 4 процессами
p = Pool(4)
%timeit p.map(f, inputs)
# 451 ms ± 34 ms per loop (...)
Также можно не указывать параметр
number_of_processes, по умолчанию он равен количеству ядер CPU в системе.📲 Мы в MAX
👉@BookPython
❤1👍1
10 полезных библиотек для Python-разработчика
Сегодня я подготовил для вас подборку из 10 полезных библиотек, которые могут сделать вашу разработку проще и эффективнее. Поехали! 🚀
1️⃣ Rich – красивый вывод в консоль. Если хотите раскрасить логи, добавить таблицы или анимации – эта библиотека вам пригодится.
📌
2️⃣ Typer – современный способ писать CLI-приложения. Работает на основе аннотаций типов и делает разработку CLI удобнее.
📌
3️⃣ Pendulum – альтернатива
📌
4️⃣ HTTPX – асинхронный клиент для работы с HTTP-запросами. Поддерживает
📌
5️⃣ Pydantic – мощный инструмент для валидации данных и работы с моделями. Особенно полезен в FastAPI.
📌
6️⃣ Poetry – современный менеджер зависимостей. Упрощает работу с виртуальными окружениями и пакетами.
📌
7️⃣ Loguru – удобная альтернатива стандартному
📌
8️⃣ FastAPI – один из самых быстрых Python-фреймворков для создания API. Использует аннотации типов и
📌
9️⃣ Tqdm – библиотека для удобных progress-bar'ов в терминале. Незаменима при обработке больших данных.
📌
🔟 Black – автоматический форматтер кода, который придерживается строгого стиля. Просто устанавливаешь – и больше не думаешь о стиле кода.
📌
📲 Мы в MAX
👉@BookPython
Сегодня я подготовил для вас подборку из 10 полезных библиотек, которые могут сделать вашу разработку проще и эффективнее. Поехали! 🚀
1️⃣ Rich – красивый вывод в консоль. Если хотите раскрасить логи, добавить таблицы или анимации – эта библиотека вам пригодится.
📌
pip install rich2️⃣ Typer – современный способ писать CLI-приложения. Работает на основе аннотаций типов и делает разработку CLI удобнее.
📌
pip install typer3️⃣ Pendulum – альтернатива
datetime, но с удобным API и встроенной поддержкой часовых поясов. 📌
pip install pendulum4️⃣ HTTPX – асинхронный клиент для работы с HTTP-запросами. Поддерживает
async/await, в отличие от requests. 📌
pip install httpx5️⃣ Pydantic – мощный инструмент для валидации данных и работы с моделями. Особенно полезен в FastAPI.
📌
pip install pydantic6️⃣ Poetry – современный менеджер зависимостей. Упрощает работу с виртуальными окружениями и пакетами.
📌
pip install poetry7️⃣ Loguru – удобная альтернатива стандартному
logging. Позволяет логировать без лишнего кода. 📌
pip install loguru8️⃣ FastAPI – один из самых быстрых Python-фреймворков для создания API. Использует аннотации типов и
async/await. 📌
pip install fastapi9️⃣ Tqdm – библиотека для удобных progress-bar'ов в терминале. Незаменима при обработке больших данных.
📌
pip install tqdm🔟 Black – автоматический форматтер кода, который придерживается строгого стиля. Просто устанавливаешь – и больше не думаешь о стиле кода.
📌
pip install black📲 Мы в MAX
👉@BookPython
👍2❤1🔥1
🔥 Как ускорить Python-код в 10 раз?
Сегодня покажу вам мощный инструмент для оптимизации кода - Numba. Это библиотека, которая позволяет компилировать Python-функции в машинный код, используя JIT-компилятор.
🚀 Как это работает?
Numba использует LLVM для компиляции кода во время выполнения, превращая Python в код, близкий по скорости к C.
Пример
Допустим, у нас есть функция, вычисляющая сумму квадратов чисел:
Теперь ускорим её с помощью Numba:
📊 Результат:
✅ Код на чистом Python выполняется ~5-10 раз медленнее, чем с Numba.
✅ Numba особенно полезна для математических вычислений и обработки массивов.
✅ Простая аннотация @jit(nopython=True) уже даёт мощный прирост скорости!
Где применять?
✔ Численные расчёты
✔ Обработку данных
✔ Алгоритмы машинного обучения
Попробуйте Numba и напишите в комментариях, удалось ли вам ускорить свой код!
📲 Мы в MAX
👉@BookPython
Сегодня покажу вам мощный инструмент для оптимизации кода - Numba. Это библиотека, которая позволяет компилировать Python-функции в машинный код, используя JIT-компилятор.
🚀 Как это работает?
Numba использует LLVM для компиляции кода во время выполнения, превращая Python в код, близкий по скорости к C.
Пример
Допустим, у нас есть функция, вычисляющая сумму квадратов чисел:
import numpy as np
import time
def sum_of_squares(n):
result = 0
for i in range(n):
result += i ** 2
return result
n = 10**7
start = time.time()
sum_of_squares(n)
print("Обычный Python:", time.time() - start)
Теперь ускорим её с помощью Numba:
from numba import jit
@jit(nopython=True)
def sum_of_squares_numba(n):
result = 0
for i in range(n):
result += i ** 2
return result
start = time.time()
sum_of_squares_numba(n)
print("С Numba:", time.time() - start)
📊 Результат:
✅ Код на чистом Python выполняется ~5-10 раз медленнее, чем с Numba.
✅ Numba особенно полезна для математических вычислений и обработки массивов.
✅ Простая аннотация @jit(nopython=True) уже даёт мощный прирост скорости!
Где применять?
✔ Численные расчёты
✔ Обработку данных
✔ Алгоритмы машинного обучения
Попробуйте Numba и напишите в комментариях, удалось ли вам ускорить свой код!
📲 Мы в MAX
👉@BookPython
❤1
🚀 5 крутых Python-фишек, о которых знают не все
Python — мощный и удобный язык, но даже опытные разработчики иногда не знают всех его возможностей. Сегодня я покажу пять полезных трюков, которые могут упростить вашу работу.
1. Используем
Многие не знают, что в Python циклы
✅ Пример:
🔹 Если в списке нет чётных чисел, сработает
2. "Распаковка" переменных
В Python можно присваивать сразу несколько значений одной строкой.
✅ Пример:
Можно менять местами значения без временной переменной:
3. Используем
Чтобы числа легче читались, можно разделять разряды
✅ Пример:
Это просто синтаксический сахар, Python игнорирует
4. Получаем значение из словаря с запасным вариантом
Вместо
✅ Пример:
5. "Распаковка" списка в аргументы функции
Оператор
✅ Пример:
То же работает со словарями через
Эти фишки делают код лаконичнее и понятнее.
📲 Мы в MAX
👉@BookPython
Python — мощный и удобный язык, но даже опытные разработчики иногда не знают всех его возможностей. Сегодня я покажу пять полезных трюков, которые могут упростить вашу работу.
1. Используем
else в for и while Многие не знают, что в Python циклы
for и while могут иметь блок else. Он выполняется, если цикл не был прерван через break. ✅ Пример:
numbers = [1, 3, 5, 7]
for num in numbers:
if num % 2 == 0:
print("Есть чётное число!")
break
else:
print("Чётных чисел нет.")
🔹 Если в списке нет чётных чисел, сработает
else.2. "Распаковка" переменных
В Python можно присваивать сразу несколько значений одной строкой.
✅ Пример:
a, b, c = 1, 2, 3
print(a, b, c) # 1 2 3
Можно менять местами значения без временной переменной:
x, y = 5, 10
x, y = y, x
print(x, y) # 10 5
3. Используем
_ в больших числах Чтобы числа легче читались, можно разделять разряды
_. ✅ Пример:
big_number = 1_000_000_000
print(big_number) # 1000000000
Это просто синтаксический сахар, Python игнорирует
_ при вычислениях.4. Получаем значение из словаря с запасным вариантом
Вместо
if key in dict можно использовать .get(), чтобы избежать KeyError. ✅ Пример:
user_data = {"name": "Alice"}
age = user_data.get("age", 18) # Если ключа "age" нет, вернётся 18
print(age) # 18
5. "Распаковка" списка в аргументы функции
Оператор
* позволяет передавать элементы списка в функцию как отдельные аргументы. ✅ Пример:
def greet(name, age):
print(f"Привет, {name}! Тебе {age} лет.")
user_info = ["Иван", 25]
greet(*user_info) # Привет, Иван! Тебе 25 лет.
То же работает со словарями через
**:
user_dict = {"name": "Ольга", "age": 30}
greet(**user_dict)
Эти фишки делают код лаконичнее и понятнее.
📲 Мы в MAX
👉@BookPython
👍4🔥2