Forwarded from Moscow Python (Valentin Dombrovsky)
Итоги года для Moscow Python Podcast от Яндекс.Музыки.
Если вы пользуетесь ЯМ и ещё не подписались на нас, можно сделать это тут: https://music.yandex.ru/album/6892837
А общее количество прослушиваний Moscow Python Podcast на русском на всех платформах (не считая просмотров на Ютубе) за всё время превысило 0.5 млн.!
Если вы пользуетесь ЯМ и ещё не подписались на нас, можно сделать это тут: https://music.yandex.ru/album/6892837
А общее количество прослушиваний Moscow Python Podcast на русском на всех платформах (не считая просмотров на Ютубе) за всё время превысило 0.5 млн.!
Forwarded from Хитрый Питон
На мой взгляд, одной из больших проблем как у тех, кто приходит в разработку так и у тех, кто довольно давно в ней работает. Это умение не просто хорошо писать код, а умение структурировать проект. Понимать, чем хорошая архитектура отличается от плохой. В книгах часто описываются высокоуровневые абстрактные концепции и дальше возникает вопрос — все это хорошо, но вот у меня есть проект на условной Джанге, как все это применить?
На выходных я разбирал закладки и наткнулся на несколько неплохих практических "около архитектурных" гайдов, про которые хочу рассказать:
1. Django Styleguide - гайд который ребята из HackSoftware развивают уже несколько лет. Если вы не читали - очень рекомендую, много хорошего можно утащить для своего проекта. Там хорошо описано как структурировать проект так, чтобы код было легче развивать, поддерживать и тестировать. Гайд постоянно развивается и обновляется https://github.com/HackSoftware/Django-Styleguide
2. Django API Domains - пример применения некоторых принципов Domain-Driven Design в Django. Тут как и в предыдущем гайде использован довольно прагматичный подход - вместо того, чтобы тащить все что есть в DDD, автор предлагает достаточно простую, легко реализуемую и поддерживаемую структуру проекта. Это не "чистый DDD", но лично мне такой подход больше нравится своей простотой. Гайд небольшой и не очень активно развивается, но я все равно рекомендую потратить время и ознакомиться с ним https://phalt.github.io/django-api-domains/
Ну и подводя итог хочу повторить то, что написано в двух первых гайдах. Это не инструкции, которым надо в точности следовать. Это скорее набор подсказок и принципов, из которых имеет смысл выбрать то, что вам покажется разумным и полезным в своих проектах.
P.S. Я попробовал включить комментарии в канале, надеюсь сработает 🙂 Если у вас есть другие хорошие гайды по архитектуре python-веб-приложений - кидайте в комменты, я по итогам сделаю еще один пост.
На выходных я разбирал закладки и наткнулся на несколько неплохих практических "около архитектурных" гайдов, про которые хочу рассказать:
1. Django Styleguide - гайд который ребята из HackSoftware развивают уже несколько лет. Если вы не читали - очень рекомендую, много хорошего можно утащить для своего проекта. Там хорошо описано как структурировать проект так, чтобы код было легче развивать, поддерживать и тестировать. Гайд постоянно развивается и обновляется https://github.com/HackSoftware/Django-Styleguide
2. Django API Domains - пример применения некоторых принципов Domain-Driven Design в Django. Тут как и в предыдущем гайде использован довольно прагматичный подход - вместо того, чтобы тащить все что есть в DDD, автор предлагает достаточно простую, легко реализуемую и поддерживаемую структуру проекта. Это не "чистый DDD", но лично мне такой подход больше нравится своей простотой. Гайд небольшой и не очень активно развивается, но я все равно рекомендую потратить время и ознакомиться с ним https://phalt.github.io/django-api-domains/
Ну и подводя итог хочу повторить то, что написано в двух первых гайдах. Это не инструкции, которым надо в точности следовать. Это скорее набор подсказок и принципов, из которых имеет смысл выбрать то, что вам покажется разумным и полезным в своих проектах.
P.S. Я попробовал включить комментарии в канале, надеюсь сработает 🙂 Если у вас есть другие хорошие гайды по архитектуре python-веб-приложений - кидайте в комменты, я по итогам сделаю еще один пост.
GitHub
GitHub - HackSoftware/Django-Styleguide: Django styleguide used in HackSoft projects
Django styleguide used in HackSoft projects. Contribute to HackSoftware/Django-Styleguide development by creating an account on GitHub.
Forwarded from Хитрый Питон
Tryo Labs опубликовали ежегодный обзор "Top Python Libraries 2022". Обзор несколько субъективный и смещен в сторону анализа данных/машинного обучения, но все равно но его интересно посомтреть с точки зрения " какие из этих библиотек я знаю/пробовал?". Мне было интересно пробежаться по предыдущим выпуска - самый ранний вышел в 2015 году. https://tryolabs.com/blog/2022/12/26/top-python-libraries-2022
Tryolabs
Top Python libraries of 2022
There are so many amazing Python libraries and tools out every year that it's hard to keep track of them all. That's why we share with you our hand-picked selection of our best picks.
Python для начинающих на практике - парсинг вакансий [2021]
Чему вы научитесь:
▪️Переменные в Python
▪️Функции в Python
▪️Типы данных
▪️Позиционные и именованные аргументы
▪️Циклы и условия
▪️Практика: парсер вакансий с сайтов по поиску работы
📚Размер: 2,55 ГБ
💰Цена: 1 590 руб.
🧷Скачать бесплатно
🎭IT Pirate
Чему вы научитесь:
▪️Переменные в Python
▪️Функции в Python
▪️Типы данных
▪️Позиционные и именованные аргументы
▪️Циклы и условия
▪️Практика: парсер вакансий с сайтов по поиску работы
📚Размер: 2,55 ГБ
💰Цена: 1 590 руб.
🧷Скачать бесплатно
🎭IT Pirate
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
Основы_искусственного_интеллекта_в_примерах_на_Python.pdf
49.7 MB
📖 Основы искусственного интеллекта в примерах на Python
Описаны инструментальные средства для разработки приложений искусственного интеллекта. Даны основы языка программирования Python. Раскрыты основные понятия и определения искусственного интеллекта. Рассмотрены вопросы программной реализации элементов нейронной сети и построения многослойных нейронных сетей.
Большое внимание уделено применению специализированных библиотек PyBrain, Scikit-learn, Keras, TensorFlow для формирования структуры нейронных сетей и их обучения и библиотек ImageAI и OpenCV для обработки изображений. Материал иллюстрирован простыми и понятными примерами, демонстрирующими использование предварительно обученных нейронных сетей для распознавания объектов на изображениях, создания собственных наборов данных, формирования структуры сети, ее обучения и практического применения.
Автор: Анатолий Постолит
Год: 2021
Язык: Русский
Страниц: 445
#python
Описаны инструментальные средства для разработки приложений искусственного интеллекта. Даны основы языка программирования Python. Раскрыты основные понятия и определения искусственного интеллекта. Рассмотрены вопросы программной реализации элементов нейронной сети и построения многослойных нейронных сетей.
Большое внимание уделено применению специализированных библиотек PyBrain, Scikit-learn, Keras, TensorFlow для формирования структуры нейронных сетей и их обучения и библиотек ImageAI и OpenCV для обработки изображений. Материал иллюстрирован простыми и понятными примерами, демонстрирующими использование предварительно обученных нейронных сетей для распознавания объектов на изображениях, создания собственных наборов данных, формирования структуры сети, ее обучения и практического применения.
Автор: Анатолий Постолит
Год: 2021
Язык: Русский
Страниц: 445
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
⏱ Как создать таймер в Python
С помощью данного модуля можно легко планировать и откладывать запуск своего кода на определенное время
#python
С помощью данного модуля можно легко планировать и откладывать запуск своего кода на определенное время
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
⌨️ Отступы
На самом деле, вопрос об отступах является одним из наболевших в программировании. В 2016 году разработчики компании Google решили произвести анализ кода разработчиков, лежащего на ресурсе GitHub, и выявить наиболее популярный способ форматирования текста для разных языков программирования.
Проанализировав 400 тысяч репозиториев, они получили следующую картину. Для большинства языков программирования (Java, Python, JavaScript, PHP) разработчики преимущественно используют пробел, однако в языке С более популярным способом форматирования является табуляция.
#python
На самом деле, вопрос об отступах является одним из наболевших в программировании. В 2016 году разработчики компании Google решили произвести анализ кода разработчиков, лежащего на ресурсе GitHub, и выявить наиболее популярный способ форматирования текста для разных языков программирования.
Проанализировав 400 тысяч репозиториев, они получили следующую картину. Для большинства языков программирования (Java, Python, JavaScript, PHP) разработчики преимущественно используют пробел, однако в языке С более популярным способом форматирования является табуляция.
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🔠ℹ️ Литералы
Чтобы указать, что функция может принимать заранее известные значения ("left", "center", "right"), используется тип
Его можно заметить в
📌 PEP 586
#python
Чтобы указать, что функция может принимать заранее известные значения ("left", "center", "right"), используется тип
Literal
.Его можно заметить в
open()
. Функция принимает 'r', 'rb', 'w', но если передать 'kwargs', IDE выдаст предупреждение. Literal
можно вкладывать друг в друга: Literal['a', Literal['b']]
. Это удобно для связывания нескольких литералов.📌 PEP 586
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
ℹ️🦖 IPython
Знаете ли вы, что существует оболочка и для IPython? Если вы во всю работаете с интерактивной оболочкой, но не знаете самого IPython, то однозначно присмотритесь к этому пункту!
✅ Особенности:
— Комплексная интроспекция объекта;
— История ввода, которая хранится в течение сеансов;
— Кэширование результатов вывода в течение сеанса с автоматически генерируемыми указателями;
...
Сайт: https://github.com/ipython/ipython
#python
Знаете ли вы, что существует оболочка и для IPython? Если вы во всю работаете с интерактивной оболочкой, но не знаете самого IPython, то однозначно присмотритесь к этому пункту!
✅ Особенности:
— Комплексная интроспекция объекта;
— История ввода, которая хранится в течение сеансов;
— Кэширование результатов вывода в течение сеанса с автоматически генерируемыми указателями;
...
Сайт: https://github.com/ipython/ipython
#python
GitHub
GitHub - ipython/ipython: Official repository for IPython itself. Other repos in the IPython organization contain things like the…
Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc. - ipython/ipython
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🐊7️⃣ расширенных возможностей Python
💬 Python - один из самых продвинутых языков программирования, который широко используется во многих отраслях. Он обладает множеством расширенных функций, которые делают его мощным инструментом в руках опытных программистов.
#python
💬 Python - один из самых продвинутых языков программирования, который широко используется во многих отраслях. Он обладает множеством расширенных функций, которые делают его мощным инструментом в руках опытных программистов.
Вот подборка из 7 наиболее полезных расширенных возможностей Python.👆🏻Читать статью
#python
Telegraph
7 расширенных возможностей Python
Python и 1000 программ 1. Оператор with Оператор with в Python — это удобный способ автоматического освобождения ресурсов, которые больше не нужны, таких как дескрипторы файлов и соединения с базами данных. Для примера рассмотрим следующий код: with open…
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
💫🆚🐼 Pyspark. Анализ больших данных, когда Pandas не достаточно
Pandas - одна из наиболее используемых библиотек Python с открытым исходным кодом для работы со структурированными табличными данными для анализа. Однако он не поддерживает распределенную обработку, поэтому вам всегда придется увеличивать ресурсы, когда вам понадобится дополнительная мощность для поддержки растущих данных.
И всегда наступит момент, когда ресурсов станет недостаточно. В данной статье мы рассмотрим, как PySpark выручает в условиях нехватки мощностей для обработки данных.
👆🏻Читать...
#python
Pandas - одна из наиболее используемых библиотек Python с открытым исходным кодом для работы со структурированными табличными данными для анализа. Однако он не поддерживает распределенную обработку, поэтому вам всегда придется увеличивать ресурсы, когда вам понадобится дополнительная мощность для поддержки растущих данных.
И всегда наступит момент, когда ресурсов станет недостаточно. В данной статье мы рассмотрим, как PySpark выручает в условиях нехватки мощностей для обработки данных.
👆🏻Читать...
#python
Хабр
Pyspark. Анализ больших данных, когда Pandas не достаточно
Pandas - одна из наиболее используемых библиотек Python с открытым исходным кодом для работы со структурированными табличными данными для анализа. Однако он не поддерживает распределенную обработку,...
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🗞⚠️
#python
types.MappingProxyType
Доступный только для чтения словарь. По своей сути — Read-only обертка для словаря. Данные считывать можно, а менять — нельзя.#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🔢▶️
Несмотря на свою простоту, у модуля огромный функционал. Если у вас в коде есть магические числа (1, 2, 3, 4), то воспользуйтесь enum.
#python
from enum import Enum
Библиотека для создания именованных перечислений. Признайте, что намного проще понять STATUS_CODE.ACCEPTED
, чем просто 202
.Несмотря на свою простоту, у модуля огромный функционал. Если у вас в коде есть магические числа (1, 2, 3, 4), то воспользуйтесь enum.
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🔥🔄 Ускоряем цикл в Python в 33000 раз
python почти всегда позволяет решить одну задачу разными способами, тут-то самое время вспомнить о map!
Многие утверждают, что map более безопасный, быстрый, и вообще - это база. Проверим? Сгенерируем тренировочный список из 100000 отрицательных и положительных чисел.
- For Loop
- List Comprehension
- Map
Феноменально, при работе со встроенными функциями, map не просто в лидерах, он в 12000 раз быстрее! Может остальные методы нам и вовсе не нужны?
🔵 Давайте проверим map на невстроенных функциях, например, возведем элементы в квадрат.
- For Loop затратит
- List Comprehension -
- Map (используем lambda):
Это ли не чудо? Map быстрее в 33000 раз! Мы вам скажем, по секрету, что map вообще-то не очень жалует использование lambda (это несколько снижает скорость). А если бы мы преобразовали возвращаемый map объект в список, то затраченное время стало бы примерно таким же, как у list comprehension. Но! Map очень любит работать с готовыми функциями, в том числе с определенными пользователем. Поэтому напишем функцию
- List Comprehension:
- Map
Никого уже, наверное, не удивляет, map опять быстрее, в 20000 раз. Причем обратите внимание, ускорилась работа list comprehension -
🟣 Последнее, что мы еще не проверили, это добавление условий. Допустим, в результирующем списке должны быть только те числа, квадраты которых кратны 8.
- For Loop отработает за
- List Comprehension за
- Map, увы, не позволит сделать нам ничего подобного. Она может невероятно быстро применить функцию к каждому элементу массива, но удалить элемент - не может. Для таких случаев есть filter:
Ну что же, можно забывать про list comprehension и циклы, зачем они вообще нужны, когда есть map и filter, которые всегда в тысячи раз быстрее. Да?
Нет! Наверняка, знакомые с функцией map, уже хотят подловить нас на обмане. А именно, map никогда не возвращает список, только
Да, ни в одном из наших примеров, мы не формировали из возвращаемого
#python
python почти всегда позволяет решить одну задачу разными способами, тут-то самое время вспомнить о map!
Многие утверждают, что map более безопасный, быстрый, и вообще - это база. Проверим? Сгенерируем тренировочный список из 100000 отрицательных и положительных чисел.
lst = random.sample(range(-10000000, 10000000), 100000)
🟢 А теперь воспользуемся тремя методами и применим к списку встроенную функцию abs
.- For Loop
lst_pos = []Время работы:
for i in lst:
lst_pos.append(abs(i))
7.98 ms
.- List Comprehension
lst_pos = [abs(i) for i in lst]Время работы:
5.07 ms
.- Map
lst_pos = map(abs, lst)Время работы:
419 ns
.Феноменально, при работе со встроенными функциями, map не просто в лидерах, он в 12000 раз быстрее! Может остальные методы нам и вовсе не нужны?
🔵 Давайте проверим map на невстроенных функциях, например, возведем элементы в квадрат.
- For Loop затратит
23 ms
.- List Comprehension -
20.9 ms
.- Map (используем lambda):
map(lambda x: x**2, lst)
Время работы: 628 ns
.Это ли не чудо? Map быстрее в 33000 раз! Мы вам скажем, по секрету, что map вообще-то не очень жалует использование lambda (это несколько снижает скорость). А если бы мы преобразовали возвращаемый map объект в список, то затраченное время стало бы примерно таким же, как у list comprehension. Но! Map очень любит работать с готовыми функциями, в том числе с определенными пользователем. Поэтому напишем функцию
pow2
, которая принимает x
и возводит его в квадрат - x * x
.- List Comprehension:
[pow2(x) for x in lst]
Время: 8.6 ms
.- Map
map(pow2, lst)
Время: 401 ns
.Никого уже, наверное, не удивляет, map опять быстрее, в 20000 раз. Причем обратите внимание, ускорилась работа list comprehension -
8.6 ms
против 20.9 ms
, хотя делали мы одно и то же, просто разными способами. Берем на заметку!🟣 Последнее, что мы еще не проверили, это добавление условий. Допустим, в результирующем списке должны быть только те числа, квадраты которых кратны 8.
- For Loop отработает за
26.3 ms
.- List Comprehension за
25.8 ms
.- Map, увы, не позволит сделать нам ничего подобного. Она может невероятно быстро применить функцию к каждому элементу массива, но удалить элемент - не может. Для таких случаев есть filter:
filter(lambda x: x**2 % 8 == 0, lst)
И время: 542 ns
.Ну что же, можно забывать про list comprehension и циклы, зачем они вообще нужны, когда есть map и filter, которые всегда в тысячи раз быстрее. Да?
Нет! Наверняка, знакомые с функцией map, уже хотят подловить нас на обмане. А именно, map никогда не возвращает список, только
map object
, и это именно то, что отличает его от “конкурентов” и позволяет map оставаться впереди. Да, ни в одном из наших примеров, мы не формировали из возвращаемого
map object
- список. Это существенно замедлило бы работу map, но даже если сделали бы - map все равно остался бы быстрее приблизительно в 1,5 - 2 раза (опять же, кроме случаев с использованием lambda). Но если вам так же, не нужны все вычисляемые значения сразу - выбирайте map, и тоже будете быстрее в 33000 раз!#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🎓💻 Лучшие известные программисты всех времен
0️⃣ Изобретатель языка программирования Python, Ван Россум — один из известных программистов, оказавших неизгладимое влияние на мир программирования. Ван Россум вырос в Нидерландах, и там же он получил образование. Он получил степень магистра математики и информатики в Амстердамском университете. Не только в Python, Ван Россум также внес свой вклад в развитие языка ABC. В 1989 году он разработал Python, когда искал хобби-проект, чтобы провести выходные. Так работают гении?
1️⃣ Финно-американский программист Линус Торвальдс - создатель ядра Linux и системы управления версиями Git. В 1994 году Торвальдс презентовал перед студентами Хельсинкского университета Linux 1.0 (её исходники лежат на kernel.org). Этот был первый стабильный релиз, пригодный для коммерческого использования. Предыдущие версии OC с завидной регулярностью выдавали баги, но теперь всё изменилось.
В 2014 году самый популярный дистрибутив Ubuntu отчитался, что его используют 22 миллиона пользователей. Linux стала самой популярной не только в коммерческой среде, но и в сфере высших достижений. Все самые мощные машины из рейтинга топ-500 суперкомпьютеров работают на Linux.
Сегодня всего устройств на Linux насчитывается от 3 до 3,5 миллиардов. Так что дело Торвальдса точно можно назвать успешным.
#python
0️⃣ Изобретатель языка программирования Python, Ван Россум — один из известных программистов, оказавших неизгладимое влияние на мир программирования. Ван Россум вырос в Нидерландах, и там же он получил образование. Он получил степень магистра математики и информатики в Амстердамском университете. Не только в Python, Ван Россум также внес свой вклад в развитие языка ABC. В 1989 году он разработал Python, когда искал хобби-проект, чтобы провести выходные. Так работают гении?
1️⃣ Финно-американский программист Линус Торвальдс - создатель ядра Linux и системы управления версиями Git. В 1994 году Торвальдс презентовал перед студентами Хельсинкского университета Linux 1.0 (её исходники лежат на kernel.org). Этот был первый стабильный релиз, пригодный для коммерческого использования. Предыдущие версии OC с завидной регулярностью выдавали баги, но теперь всё изменилось.
В 2014 году самый популярный дистрибутив Ubuntu отчитался, что его используют 22 миллиона пользователей. Linux стала самой популярной не только в коммерческой среде, но и в сфере высших достижений. Все самые мощные машины из рейтинга топ-500 суперкомпьютеров работают на Linux.
Сегодня всего устройств на Linux насчитывается от 3 до 3,5 миллиардов. Так что дело Торвальдса точно можно назвать успешным.
#python