🖥 Aiopandas - легковесный патч для Pandas, который добавляет нативную async поддержку для самых популярных методов обработки данных: map, apply, applymap, aggregate и transform.
Позволяет без проблем передавать async функции в эти методы. Библиотека автоматически запустит их асинхронно, управляя количеством одновременно выполняемых задач с помощью параметра max_parallel.
✨ Ключевые возможности:
▪ Простая интеграция: Используйте как замену стандартным функциям Pandas, но теперь с полноценной поддержкой async функций.
▪ Контролируемый параллелизм: Автоматическое асинхронное выполнение ваших корутин с возможностью ограничить максимальное число параллельных задач (max_parallel). Идеально для управления нагрузкой на внешние сервисы!
▪ Гибкая обработка ошибок: Встроенные опции для управления ошибками во время выполнения: выбросить исключение (raise), проигнорировать (ignore) или записать в лог (log).
▪ Индикация прогресса: Встроенная поддержка tqdm для наглядного отслеживания процесса выполнения долгих операций в реальном времени.
🖥 Github: https://github.com/telekinesis-inc/aiopandas
#python #pandas #asyncio #async #datascience #программирование #обработкаданных #асинхронность
@python_be1
Позволяет без проблем передавать async функции в эти методы. Библиотека автоматически запустит их асинхронно, управляя количеством одновременно выполняемых задач с помощью параметра max_parallel.
✨ Ключевые возможности:
▪ Простая интеграция: Используйте как замену стандартным функциям Pandas, но теперь с полноценной поддержкой async функций.
▪ Контролируемый параллелизм: Автоматическое асинхронное выполнение ваших корутин с возможностью ограничить максимальное число параллельных задач (max_parallel). Идеально для управления нагрузкой на внешние сервисы!
▪ Гибкая обработка ошибок: Встроенные опции для управления ошибками во время выполнения: выбросить исключение (raise), проигнорировать (ignore) или записать в лог (log).
▪ Индикация прогресса: Встроенная поддержка tqdm для наглядного отслеживания процесса выполнения долгих операций в реальном времени.
🖥 Github: https://github.com/telekinesis-inc/aiopandas
#python #pandas #asyncio #async #datascience #программирование #обработкаданных #асинхронность
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Не путай is и == в #Python
В Python есть тонкий момент: оператор is и оператор == не одно и то же.
- is проверяет идентичность объектов (указывают ли они на одну и ту же область памяти).
- == проверяет равенство значений.
Малоизвестный кейс: маленькие числа и короткие строки в Пайтон кешируются. Поэтому a is b иногда случайно даёт True — и это вводит в заблуждение. Но с большими числами и динамически созданными строками поведение будет другим.
Лучше всегда использовать ==, когда нужно сравнение по значению.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
В Python есть тонкий момент: оператор is и оператор == не одно и то же.
- is проверяет идентичность объектов (указывают ли они на одну и ту же область памяти).
- == проверяет равенство значений.
Малоизвестный кейс: маленькие числа и короткие строки в Пайтон кешируются. Поэтому a is b иногда случайно даёт True — и это вводит в заблуждение. Но с большими числами и динамически созданными строками поведение будет другим.
Лучше всегда использовать ==, когда нужно сравнение по значению.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python трюк: динамическое добавление методов в класс
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP, #паттерныпроектирования, #чистыйкод, #DevOps, #CICD, #Docker, #Kubernetes, #AWS, #Azure, #GCP, #скрипты, #автоматизация, #BigData, #анализданных,
@python_be1
Мало кто знает, но в Python можно на лету добавлять методы в уже созданный класс. Это удобно для плагинов, тестов или динамических API.
⚡ Приём называется monkey patching.
Это мощный инструмент — но им надо пользоваться аккуратно, чтобы не сломать читаемость кода.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP, #паттерныпроектирования, #чистыйкод, #DevOps, #CICD, #Docker, #Kubernetes, #AWS, #Azure, #GCP, #скрипты, #автоматизация, #BigData, #анализданных,
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Полезный совет по ускорению Python-кода
Многие считают, что list comprehension всегда оптимален. Но при больших объёмах данных связка map + filter может быть быстрее: она выполняется на уровне C и не создаёт лишних промежуточных структур.
Когда нужно одновременно фильтровать и преобразовывать элементы, map + filter часто выигрывает по скорости.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
Многие считают, что list comprehension всегда оптимален. Но при больших объёмах данных связка map + filter может быть быстрее: она выполняется на уровне C и не создаёт лишних промежуточных структур.
Когда нужно одновременно фильтровать и преобразовывать элементы, map + filter часто выигрывает по скорости.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Трюк: проверка сетевых сервисов в Python через socket
В Python можно быстро проверить, доступен ли сетевой сервис и как быстро он отвечает, не прибегая к сложным утилитам.
Это помогает опытным разработчикам, когда нужно оперативно убедиться, что API или база данных действительно доступны и не "подвисают".
Через socket можно реализовать мини-проверку состояния сети и времени отклика.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest
@python_be1
В Python можно быстро проверить, доступен ли сетевой сервис и как быстро он отвечает, не прибегая к сложным утилитам.
Это помогает опытным разработчикам, когда нужно оперативно убедиться, что API или база данных действительно доступны и не "подвисают".
Через socket можно реализовать мини-проверку состояния сети и времени отклика.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python: функции-фабрики
Простой, но мощный трюк: генерация функций на лету через замыкания. Вместо дублирования логики можно одной фабрикой создавать десятки разных функций.
Хочешь больше таких фишек? Подписывайся на нас и каждый день получай свежие и нестандартные советы, которые реально прокачают твои навыки разработчика!
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
Простой, но мощный трюк: генерация функций на лету через замыкания. Вместо дублирования логики можно одной фабрикой создавать десятки разных функций.
Хочешь больше таких фишек? Подписывайся на нас и каждый день получай свежие и нестандартные советы, которые реально прокачают твои навыки разработчика!
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #OOP,
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Ускоряем Python-скрипты с помощью библиотеки numba
Когда ваш Python-код начинает тормозить из-за тяжёлых вычислительных циклов, спасает библиотека numba. Она компилирует функции в машинный код с помощью JIT-компиляции и позволяет ускорить выполнение в десятки раз без переписывания логики на C или C++.
Просто добавьте декоратор @njit к функции с числовыми расчётами или обработкой массивов — и получите мгновенный прирост скорости.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #питон
@python_be1
Когда ваш Python-код начинает тормозить из-за тяжёлых вычислительных циклов, спасает библиотека numba. Она компилирует функции в машинный код с помощью JIT-компиляции и позволяет ускорить выполнение в десятки раз без переписывания логики на C или C++.
Просто добавьте декоратор @njit к функции с числовыми расчётами или обработкой массивов — и получите мгновенный прирост скорости.
#Python, #программирование, #кодинг, #разработка, #собеседование, #интервью, #PythonJobs, #DataScience, #MachineLearning, #AI, #backend, #webdev, #Django, #Flask, #FastAPI, #API, #REST, #asyncio, #многопоточность, #многозадачность, #библиотеки, #NumPy, #Pandas, #TensorFlow, #PyTorch, #SQL, #ORM, #SQLAlchemy, #тестирование, #unittest, #pytest, #TDD, #алгоритмы, #структурыданных, #питон
@python_be1
🖥 Python: Почему твой asyncio-код тормозит и блокируется?
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с вычислениями или работа с диском без специальных обёрток. Такой вызов останавливает весь event loop, и остальные корутины тупо ждут.
Главное правило: внутри async-функций каждая долгая операция должна либо быть асинхронной (через await), либо вынесена в поток или процесс. Если в корутине нет нормальных await, она вообще не отдаёт управление циклу, и твой «асинхронный» код ведёт себя как обычный синхронный.
Используй:
- асинхронные библиотеки (aiohttp вместо requests и т.п.);
- asyncio.sleep вместо time.sleep;
- asyncio.to_thread или отдельный процесс для тяжёлых синхронных задач.
Как только уберёшь блокирующие вызовы из корутин, код перестанет «залипать» и начнёт реально работать параллельно по I/O.
```
import asyncio
import time
async def bad_task():
print("start bad")
time.sleep(2)
print("end bad")
async def good_task():
print("start good")
await asyncio.to_thread(time.sleep, 2)
print("end good")
async def main():
await asyncio.gather(bad_task(), good_task())
asyncio.run(main())
```
https://www.youtube.com/shorts/LZgy5YvQR4o
@python_be1
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с вычислениями или работа с диском без специальных обёрток. Такой вызов останавливает весь event loop, и остальные корутины тупо ждут.
Главное правило: внутри async-функций каждая долгая операция должна либо быть асинхронной (через await), либо вынесена в поток или процесс. Если в корутине нет нормальных await, она вообще не отдаёт управление циклу, и твой «асинхронный» код ведёт себя как обычный синхронный.
Используй:
- асинхронные библиотеки (aiohttp вместо requests и т.п.);
- asyncio.sleep вместо time.sleep;
- asyncio.to_thread или отдельный процесс для тяжёлых синхронных задач.
Как только уберёшь блокирующие вызовы из корутин, код перестанет «залипать» и начнёт реально работать параллельно по I/O.
```
import asyncio
import time
async def bad_task():
print("start bad")
time.sleep(2)
print("end bad")
async def good_task():
print("start good")
await asyncio.to_thread(time.sleep, 2)
print("end good")
async def main():
await asyncio.gather(bad_task(), good_task())
asyncio.run(main())
```
https://www.youtube.com/shorts/LZgy5YvQR4o
@python_be1
YouTube
🔥 Python: Почему твой asyncio-код тормозит и блокируется? #python #ai #питона #asyncio
Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с в...