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.
#классы
Forwarded from Python Academy
Точка входа
В некоторых языках программирования есть функции
Как вариант, многие пишут основную логику программы в обычную функцию
Переменная
Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
В некоторых языках программирования есть функции
main()
, с которых начинается выполнение программы. Но в Python весь код исполняется построчно.Как вариант, многие пишут основную логику программы в обычную функцию
main()
, а вызывают ее только в условии if __name__ == '__main__'
. Здесь стоит объяснить отдельно про то, что такое __name__
.Переменная
__name__
— это специальная переменная, которая будет равна '__main__'
, только если файл запускается как основная программа. А при импорте в качестве модуля выставляется равной имени модуля.Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
Forwarded from Python Academy
Получаем календарь
В модуле
Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
#calendar
В модуле
calendar
есть функция month()
, которая вернет календарь указанного месяца в виде строки, как показано в примере. А функция calendar()
выдаст целый год.Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
#calendar
Forwarded from Python Academy
Создаем контекстный менеджер с помощью декоратора
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов:
Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор
Первая часть функции
#contextlib
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов:
__enter__
и __exit__
. Но такой подход может показаться слегка сложным.Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор
@contextmanager
из встроенного пакета contextlib
.Первая часть функции
tag
, которая идёт до yield
, выполняется при входе в блок with
. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть, которая идет после yield
.#contextlib
Forwarded from Python Academy
Редирект вывода программы
В
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
В
contextlib
есть еще один прикольный контекстный менеджер — redirect_stdout
, позволяющий перенаправить стандартный вывод программы.Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
print()
в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout
.Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
Forwarded from Python Academy
ООП: композиция
Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией.
Как правило, в этом случае объект одного из классов (в примере выше это
Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора.
В таком случае необходимо использовать слабые ссылки из модуля
#классы #ооп
Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией.
Как правило, в этом случае объект одного из классов (в примере выше это
Salary
) является полем другого (Employee
). Сложного здесь, как вы видите, ничего нет.Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора.
В таком случае необходимо использовать слабые ссылки из модуля
weakref
, о котором поговорим позже.#классы #ооп
Forwarded from Python Academy
Считаем ссылки на объект
В Python практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#ctypes
В Python практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#ctypes
Forwarded from Python Academy
Пакетный менеджер pip
Для работы с пакетами в Python есть специальная утилита
Установить или удалить пакет можно через команды
Команды
А с помощью
#pip
Для работы с пакетами в Python есть специальная утилита
pip
— устанавливается она сразу вместе с интерпретатором.Установить или удалить пакет можно через команды
install
и uninstall
. После них нужно перечислить необходимые пакеты через пробел.Команды
list
и freeze
покажут все пакеты в текущем окружении, а также их версии. Обратите внимание на то, как выглядит вывод каждой из них.А с помощью
show
можно посмотреть информацию о конкретном пакете: название, версию, описание, автора, лицензию и другое.#pip
Forwarded from Python Academy
Ключевое слово nonlocal
Похожее по функционалу на global, ключевое слово
Поведение
Основное различие с
#переменные #nonlocal
Похожее по функционалу на global, ключевое слово
nonlocal
позволяет обращаться к переменным из нелокальной области видимости.Поведение
nonlocal
заключается в том, что интерпретатор ищет переменную в ближайшей области видимости.Основное различие с
global
в том, что с помощью nonlocal
нельзя получить переменные из глобальной области видимости.#переменные #nonlocal