Forwarded from Python Community
⚡️ Ускоряем выполнение кода
Для этого отлично подойдёт модуль concurrent.futures — он отлично подойдёт, например, для одновременного копирования файлов или параллельных вычислений.
Первым делом стоит определится, каким образом вы собираетесь разделять выполнения: с помощью потоков или используя процессы.
Далее — создайте экземпляр класса, желательно с помощью with, или самостоятельно вызвать shutdown.
С помощью submit нужно также создать задачу, чтобы получить класс Future.
Теперь с помощью Future вы можете отслеживать выполнение функции.
Например, можно запустить result() и приостановить основный поток в ожидании результата (остальные потоки будут продолжать работать).
Если хотите почитать подробнее, можете сделать это тут.
#миниурок #concurrent
Для этого отлично подойдёт модуль concurrent.futures — он отлично подойдёт, например, для одновременного копирования файлов или параллельных вычислений.
Первым делом стоит определится, каким образом вы собираетесь разделять выполнения: с помощью потоков или используя процессы.
Далее — создайте экземпляр класса, желательно с помощью with, или самостоятельно вызвать shutdown.
С помощью submit нужно также создать задачу, чтобы получить класс Future.
Теперь с помощью Future вы можете отслеживать выполнение функции.
Например, можно запустить result() и приостановить основный поток в ожидании результата (остальные потоки будут продолжать работать).
Если хотите почитать подробнее, можете сделать это тут.
#миниурок #concurrent
Forwarded from Пристанище Дата Сайентиста
Простые шаги сделать ваш Python код лучше
Используйте Flake8 — инструмент, позволяющий просканировать код проекта и обнаружить в нем стилистические ошибки и нарушения различных конвенций кода на Python.
Помните, что flake8 не модифицирует код, а просто проверят его. Подправить ошибки придется в ручную.
У Python нет обязательной статической типизации, но рекомендуется добавлять типы в аргументы функции и возвращаемые типы. Для этого просто используйте mypy и не забудьте подправить ошибки.
Black поможет форматировать ваш код в соответствии со стандартом.
isort — это библиотека Python для сортировки импорта по алфавиту с автоматическим разделением на разделы и по типу. Очень удобно.
Вы можете запускать black, flake8 и mypy вручную, но это не удобно. Мы можем автоматизировать процесс с помощью pre-commit hook и Github Actions.
Более подробно со скриншотами, кодом и примером можно почитать в моём блоге.
Используйте Flake8 — инструмент, позволяющий просканировать код проекта и обнаружить в нем стилистические ошибки и нарушения различных конвенций кода на Python.
Помните, что flake8 не модифицирует код, а просто проверят его. Подправить ошибки придется в ручную.
У Python нет обязательной статической типизации, но рекомендуется добавлять типы в аргументы функции и возвращаемые типы. Для этого просто используйте mypy и не забудьте подправить ошибки.
Black поможет форматировать ваш код в соответствии со стандартом.
isort — это библиотека Python для сортировки импорта по алфавиту с автоматическим разделением на разделы и по типу. Очень удобно.
Вы можете запускать black, flake8 и mypy вручную, но это не удобно. Мы можем автоматизировать процесс с помощью pre-commit hook и Github Actions.
Более подробно со скриншотами, кодом и примером можно почитать в моём блоге.
Forwarded from MoscowPython Conf Channel
Многие современные Web-приложения используют API-схемы для описания того, как они работают. Но само наличие схемы не значит, что реальное приложение будет вести себя так, как описано в схеме. Причин этому множество — от принципиальной невозможности выразить всё в схеме до обыкновенного недосмотра. Последствий тоже множество, и падение приложения — одно из самых безобидных.
Дмитрий Дыгало расскажет о Schemathesis — инструменте, который помогает решить многие из этих проблем при помощи property-based-тестирования. Если вас интересует практическое применение property-based-тестирования и то, как его внедрить, читайте об этом в нашей новой статье.
🔹А 27-28 сентября приходите на Moscow Python Conf++ 2021. Впервые за два года мы встречаемся офлайн. Нам есть, что обсудить. Билеты, расписание и тезисы докладов здесь.
Дмитрий Дыгало расскажет о Schemathesis — инструменте, который помогает решить многие из этих проблем при помощи property-based-тестирования. Если вас интересует практическое применение property-based-тестирования и то, как его внедрить, читайте об этом в нашей новой статье.
🔹А 27-28 сентября приходите на Moscow Python Conf++ 2021. Впервые за два года мы встречаемся офлайн. Нам есть, что обсудить. Билеты, расписание и тезисы докладов здесь.
Хабр
Использование API-схем для property-based-тестирования
Когда мы работаем с API-схемами, обычно существует несколько моделей, и они синхронизируются на разных уровнях. Обычно есть база данных, код и схема. И всё это нужно держать между собой в синхроне,...
Forwarded from Код Желтый
Мы идем на PyCon Russia 2021 — 4 доклада в основной программе, 1 в ML-треке и 1 воркшоп. Делимся расписанием докладов наших спикеров:
📎 5 сентября 10:50 — Андрей Алексеев «ETNA Time Series Library: удобное прогнозирование временных рядов»
📎 5 сентября 17:00 — Александр Шибаев «Внедрение зависимостей, контейнеры и прочие проявления SOLID в питоне. Как жить на большом проекте»
📎 6 сентября 12:00 — Илья Иваников «Воршкоп Flask-Admin, SQLAlchemy и FastAPI или как приготовить простой и удобный интрумент для работы с любыми унифицированными документами»
📎 6 сентября 12:50 — Антон Палий «Python и метрики. Мониторинг наше все»
📎 6 сентября 15:50 — Владислав Мухаматнуров «Автоматизатор в команде питонистов»
📎 6 сентября 15:50 — Данил Ахтаров «Кэширование — делаем всё правильно»
… и крутейшим видеоанонсом выступлений 📽 Увидимся на PyCon Russia!
https://www.youtube.com/watch?v=BFpnbBoARhs
📎 5 сентября 10:50 — Андрей Алексеев «ETNA Time Series Library: удобное прогнозирование временных рядов»
📎 5 сентября 17:00 — Александр Шибаев «Внедрение зависимостей, контейнеры и прочие проявления SOLID в питоне. Как жить на большом проекте»
📎 6 сентября 12:00 — Илья Иваников «Воршкоп Flask-Admin, SQLAlchemy и FastAPI или как приготовить простой и удобный интрумент для работы с любыми унифицированными документами»
📎 6 сентября 12:50 — Антон Палий «Python и метрики. Мониторинг наше все»
📎 6 сентября 15:50 — Владислав Мухаматнуров «Автоматизатор в команде питонистов»
📎 6 сентября 15:50 — Данил Ахтаров «Кэширование — делаем всё правильно»
… и крутейшим видеоанонсом выступлений 📽 Увидимся на PyCon Russia!
https://www.youtube.com/watch?v=BFpnbBoARhs
YouTube
IT's Tinkoff на PyCon Russia 2021 — анонс
Мы идем на PyCon Russia 2021. От нас — 4 доклада в основной программе, 1 в ML-треке и 1 воркшоп. Наши спикеры:
5 сентября 10:50 — Андрей Алексеев «ETNA Time Series Library: удобное прогнозирование временных рядов»
5 сентября 17:00 — Александр Шибаев «Внедрение…
5 сентября 10:50 — Андрей Алексеев «ETNA Time Series Library: удобное прогнозирование временных рядов»
5 сентября 17:00 — Александр Шибаев «Внедрение…
Forwarded from Python Community
⚡️ Взаимодействуем с текстом
Для этого идеально подойдёт flashtext — модуль, позволяющий заменять или собирать информацию из строки.
Установка:
На примере выше представлен лишь небольшой функционал библиотеки, а изучить её полностью можно на сайте документации.
#миниурок #flashtext
Для этого идеально подойдёт flashtext — модуль, позволяющий заменять или собирать информацию из строки.
Установка:
pip install flashtext
Его основное преимущество над regex — скорость выполнения. Библиотека использует свой алгоритм и, таким образом, увеличивает производительность.На примере выше представлен лишь небольшой функционал библиотеки, а изучить её полностью можно на сайте документации.
#миниурок #flashtext
Forwarded from Python School
Удаление знаков препинания
Модуль string в Python имеет множество встроенных констант с отдельными наборами символов. string.punctuation — один из них, поэтому мы будем использовать его для очистки строки.
В Python3 string.punctuation — это предварительно инициализированная строка, используемая как строковая константа. В Python string.punctuation даст все наборы знаков препинания.
Модуль string в Python имеет множество встроенных констант с отдельными наборами символов. string.punctuation — один из них, поэтому мы будем использовать его для очистки строки.
В Python3 string.punctuation — это предварительно инициализированная строка, используемая как строковая константа. В Python string.punctuation даст все наборы знаков препинания.
Forwarded from Владимир П.
import timeit
def l():
d1 = {x: y for x, y in zip(range(40), range(0,1000))}
d2 = {x: y for x, y in zip(range(40), range(0,1000))}
return {**d1, **d2}
def t():
d1 = {x: y for x, y in zip(range(40), range(0,1000))}
d2 = {x: y for x, y in zip(range(40), range(0,1000))}
return d1 | d2
print(timeit.timeit(l, number=100000))
print(timeit.timeit(t, number=100000))
Forwarded from Пристанище Дата Сайентиста
Начинаю серию публикаций полезного материала по изучению DA/DS. Если вам нравится такой формат пишите в комментариях.
Основы Python
Книги:
- Книга «Python для детей», Джейсон Бриггс Машинное обучение, big data, веб-аналитика и создание роботов — всё это раньше звучало как фразы из фильмов про будущее, а теперь это наше настоящее. Современные дети много времени проводят за компьютером — дайте же им шанс научиться программировать Смотреть описание
- Книга «Код. Тайный язык информатики», Чарльз Петцольд Книга, не только объясняющая как и почему работают компьютеры, но и приучающая к инженерному мышлению. Смотреть описание
- Книги по изучению Python Смотреть подборку
- Книга «Python для сложных задач. Наука о данных и машинное обучение», Вандер Плас Дж. Подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Смотреть описание
- Книга «Python. Карманный справочник», Лутц Марк В лаконичной форме здесь представлены все необходимые сведения о типах данных и операторах Python, специальных методах, встроенных функциях и исключениях, наиболее употребительных стандартных библиотечных модулях и других примечательных языковых средствах Python. Смотреть описание
- Книга «Automate the Boring Stuff with Python», Al Sweigart Книга про автоматизацию различной рабочей рутины Читать книгу
Полезные материалы:
- Курс «Python для начинающих» от Code Basics Первый модуль посвящен азам построения программ на Python. Он готовит плацдарм для написания осмысленных программ. Познакомиться с курсом
- Чтобы совершать меньше ошибок и разобраться в том, как ваш код работает, научитесь его дебажить и отлаживать. В этом помогут вот эти статьи:
- Отладка Python приложений с помощью pdb
- Профилирование и отладка Python
- Отладка (юнит с Хекслета)
- Python 3 Cheat Sheet (Шпаргалка по основам Python)
Дополнительные материалы:
- Основы Python — http://pythontutor.ru Отличная платформа, которая показывает, как вообще думает Python. И огромный плюс, что тут показывают чего от вас хотят, т.е. дают вопрос, набор данных и ответ, а вам нужно написать код.
- https://pythonworld.ru/samouchitel-python — очень хороший сайт, который дает не только основы, но и хорошо разобраны многие модули (например, Pandas).
- https://github.com/whitehorn/pyLearn — Python для начинающих. В своё время, когда я учился программировать на python, я понял, что лучший способ не забыть "как именно вызывать вот ту функцию, которая делает xyz" - это сесть и написать шпаргалку. Со временем их стало много, появился ipython notebook, который теперь jupyter notebook. В итоге я оформил небольшой вводный курс по python для студентов в виде серии jupyter notebook's (от install до библиотеки эффективных численных вычислений numpy). С курсом можно ознакомиться на моей страничке в GitHub
- Книга A Byte of Python: http://wombat.org.ua/AByteOfPython/
- Занятная статья с хаками для анализа данных http://proglib.io/p/analysis-hacks/
- Материал про форматирование текста через f-строки — https://shultais.education/blog/python-f-strings
- про словари есть тут http://pythontutor.ru/lessons/dicts/
- Lambda, map and filter https://medium.com/better-programming/lambda-map-and-filter-in-python-4935f248593
- https://www.codewars.com/ - выбираете питон и решаете различные задачки на нем. Гугля различные способы, читаете чужие решения, учитесь понимать чужой код, находите новые способы.
Основы Python
Книги:
- Книга «Python для детей», Джейсон Бриггс Машинное обучение, big data, веб-аналитика и создание роботов — всё это раньше звучало как фразы из фильмов про будущее, а теперь это наше настоящее. Современные дети много времени проводят за компьютером — дайте же им шанс научиться программировать Смотреть описание
- Книга «Код. Тайный язык информатики», Чарльз Петцольд Книга, не только объясняющая как и почему работают компьютеры, но и приучающая к инженерному мышлению. Смотреть описание
- Книги по изучению Python Смотреть подборку
- Книга «Python для сложных задач. Наука о данных и машинное обучение», Вандер Плас Дж. Подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Смотреть описание
- Книга «Python. Карманный справочник», Лутц Марк В лаконичной форме здесь представлены все необходимые сведения о типах данных и операторах Python, специальных методах, встроенных функциях и исключениях, наиболее употребительных стандартных библиотечных модулях и других примечательных языковых средствах Python. Смотреть описание
- Книга «Automate the Boring Stuff with Python», Al Sweigart Книга про автоматизацию различной рабочей рутины Читать книгу
Полезные материалы:
- Курс «Python для начинающих» от Code Basics Первый модуль посвящен азам построения программ на Python. Он готовит плацдарм для написания осмысленных программ. Познакомиться с курсом
- Чтобы совершать меньше ошибок и разобраться в том, как ваш код работает, научитесь его дебажить и отлаживать. В этом помогут вот эти статьи:
- Отладка Python приложений с помощью pdb
- Профилирование и отладка Python
- Отладка (юнит с Хекслета)
- Python 3 Cheat Sheet (Шпаргалка по основам Python)
Дополнительные материалы:
- Основы Python — http://pythontutor.ru Отличная платформа, которая показывает, как вообще думает Python. И огромный плюс, что тут показывают чего от вас хотят, т.е. дают вопрос, набор данных и ответ, а вам нужно написать код.
- https://pythonworld.ru/samouchitel-python — очень хороший сайт, который дает не только основы, но и хорошо разобраны многие модули (например, Pandas).
- https://github.com/whitehorn/pyLearn — Python для начинающих. В своё время, когда я учился программировать на python, я понял, что лучший способ не забыть "как именно вызывать вот ту функцию, которая делает xyz" - это сесть и написать шпаргалку. Со временем их стало много, появился ipython notebook, который теперь jupyter notebook. В итоге я оформил небольшой вводный курс по python для студентов в виде серии jupyter notebook's (от install до библиотеки эффективных численных вычислений numpy). С курсом можно ознакомиться на моей страничке в GitHub
- Книга A Byte of Python: http://wombat.org.ua/AByteOfPython/
- Занятная статья с хаками для анализа данных http://proglib.io/p/analysis-hacks/
- Материал про форматирование текста через f-строки — https://shultais.education/blog/python-f-strings
- про словари есть тут http://pythontutor.ru/lessons/dicts/
- Lambda, map and filter https://medium.com/better-programming/lambda-map-and-filter-in-python-4935f248593
- https://www.codewars.com/ - выбираете питон и решаете различные задачки на нем. Гугля различные способы, читаете чужие решения, учитесь понимать чужой код, находите новые способы.
Forwarded from Машинное обучение RU
✅ Нормализация данных в Python
https://pythonist.ru/normalizacziya-dannyh-v-python/
@machinelearning_ru
https://pythonist.ru/normalizacziya-dannyh-v-python/
@machinelearning_ru
Pythonist
Нормализация данных в Python
Давайте рассмотрим, что такое нормализация данных в Python. Для этого разберем несколько методов нормализации числовых данных.
Forwarded from Машинное обучение RU
Forwarded from Python Academy
Работаем со временем без головной боли
При работе со временем и датами у встроенных модулей есть несколько неприятных моментов:
— Их слишком много:
— В них слишком много типов:
И вот на днях я наткнулся на пакет arrow, который их решает. Во-первых, там есть все необходимое. Во-вторых, все объекты имеют один и тот же тип
Большой плюс в том, что пакет совместим с основными встроенными типами. Например, выше я преобразовал
Еще из приятных бонусов: там есть функция
#время #arrow
При работе со временем и датами у встроенных модулей есть несколько неприятных моментов:
— Их слишком много:
datetime
, time
, calendar
, dateutil
, pytz
и другие; — В них слишком много типов:
date
, time
, datetime
, tzinfo
, timedelta
, relativedelta
и т. д. И вот на днях я наткнулся на пакет arrow, который их решает. Во-первых, там есть все необходимое. Во-вторых, все объекты имеют один и тот же тип
Arrow
. Большой плюс в том, что пакет совместим с основными встроенными типами. Например, выше я преобразовал
datetime
в Arrow
и обратно. Еще из приятных бонусов: там есть функция
humanize
, которая конвертирует время в читаемый текст. #время #arrow
Forwarded from Python Academy
Частичное применение
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
#functools
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию
partial
из стандартной библиотеки functools
.Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
#functools
Forwarded from Python Tasks & ML | Задачи по питону и машинному обучению
Какого значения нет в кортеже, возвращаемом sys.exc_info() ?
Anonymous Quiz
13%
type — класс обрабатываемого исключения
25%
value — экземпляр класса исключения, который был сгенерирован
31%
traceback — объект трассировки
31%
module - файл, где исключение произошло
Forwarded from Python Academy
Порядок разрешения методов
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута
Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
#классы
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута
__mro__
. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value
, Python будет искать сначала в классе A
, далее в B
, затем в C
и в самом конце в object
. Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
#классы