Что такое old-style и new-style классы и в чем их различия?
— Old-style классы наследуются напрямую от класса type, тогда как new-style классы имеют наследование от класса object.
— New-style классы предлагают дополнительные функции, такие как дескрипторы, свойства и слоты, которые недоступны в old-style классах.
— В new-style классах метод __init__ вызывается при наследовании, в отличие от old-style классов.
— New-style классы являются предпочтительными, так как они полностью поддерживают принципы объектно-ориентированного программирования. Большинство библиотек требуют именно их использование.
Рекомендуется применять new-style классы, унаследованные от object, поскольку они обладают расширенными возможностями и лучше интегрируются с другими объектами.
— Old-style классы наследуются напрямую от класса type, тогда как new-style классы имеют наследование от класса object.
— New-style классы предлагают дополнительные функции, такие как дескрипторы, свойства и слоты, которые недоступны в old-style классах.
— В new-style классах метод __init__ вызывается при наследовании, в отличие от old-style классов.
— New-style классы являются предпочтительными, так как они полностью поддерживают принципы объектно-ориентированного программирования. Большинство библиотек требуют именно их использование.
Рекомендуется применять new-style классы, унаследованные от object, поскольку они обладают расширенными возможностями и лучше интегрируются с другими объектами.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💡 Как получить от нейросети код, работающий в 100 раз быстрее
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
Интересный эксперимент провели с Claude 3.5 Sonnet: попытались улучшить простой алгоритм на Python, раз за разом прося ИИ «написать код лучше». Задача была несложная — найти разницу между максимальным и минимальным числами в массиве, сумма цифр которых равна 30.
Казалось бы, что тут можно улучшать?
👉 Подробнее в нашей статье
#CodeOptimization
Что делает метод isalnum()?
Метод isalnum() — это строковый метод, который определяет, состоит ли строка исключительно из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами или цифрами, и False в противном случае.
Метод isalnum() особенно полезен при проверке пользовательского ввода, когда необходимо удостовериться, что введенная строка содержит только буквы и цифры.
Метод isalnum() — это строковый метод, который определяет, состоит ли строка исключительно из букв и/или цифр. Он возвращает True, если все символы в строке являются буквами или цифрами, и False в противном случае.
Метод isalnum() особенно полезен при проверке пользовательского ввода, когда необходимо удостовериться, что введенная строка содержит только буквы и цифры.
Forwarded from Proglib.academy | IT-курсы
🤖 📈 Data Science в 2025 году: 7 главных трендов
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
➡️ В статье:
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
🔵 Тренды меняются, но основы остаются — укрепи базу с нашим курсом «Математика для Data Science»
Разработчики JetBrains и Python Software Foundation рассказали, как изменится Data Science в ближайшие годы.
▪️ Почему доля Python в анализе данных снижается
▪️ Какие библиотеки набирают популярность вместо pandas
▪️ Что происходит с AutoML, MLOps и визуализацией данных
▪️ И почему Rust и Julia наступают Python на пятки
Подробный разбор, новые инструменты и прогнозы на будущее — всё это читай в нашей статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое __slots__ в Python, как они функционируют и когда их стоит применять?
__slots__ — это специальный атрибут класса, который задает фиксированный набор атрибутов для его экземпляров. Это позволяет сократить использование памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__) они размещаются в фиксированной структуре. __slots__ особенно полезны, когда необходимо создать большое количество объектов одного класса, и экономия памяти имеет критическое значение. Однако стоит учитывать, что использование __slots__ ограничивает возможность добавления новых атрибутов, что может снизить гибкость классов.
__slots__ — это специальный атрибут класса, который задает фиксированный набор атрибутов для его экземпляров. Это позволяет сократить использование памяти, так как вместо хранения атрибутов в стандартном словаре (__dict__) они размещаются в фиксированной структуре. __slots__ особенно полезны, когда необходимо создать большое количество объектов одного класса, и экономия памяти имеет критическое значение. Однако стоит учитывать, что использование __slots__ ограничивает возможность добавления новых атрибутов, что может снизить гибкость классов.
Что делает %s?
%s — это специальное поле форматирования, предназначенное для вставки строковых значений в другие строки и их форматирования. Оно является частью строкового форматирования, применяемого в функциях print(), str.format() и в старом стиле с использованием оператора %.
%s — это специальное поле форматирования, предназначенное для вставки строковых значений в другие строки и их форматирования. Оно является частью строкового форматирования, применяемого в функциях print(), str.format() и в старом стиле с использованием оператора %.
Сортировка вставками
Сортировка вставками, подобно сортировке выборкой, делит список на две части: отсортированную и неотсортированную. Алгоритм проходит по неотсортированному сегменту и вставляет текущий элемент в нужное место в отсортированной части.
Предполагается, что первый элемент списка уже отсортирован. Далее рассматриваем следующий элемент, обозначим его как x. Если x больше первого элемента, он остается на своем месте. Если же он меньше, мы перемещаем первый элемент на вторую позицию, а x устанавливаем на первое место.
Продолжая с остальными элементами из несортированного сегмента, мы сдвигаем более крупные элементы в отсортированной части списка, пока не встретим элемент, меньший чем x, или не дойдем до конца списка. В первом случае x помещается на правильную позицию.
Среднее время выполнения сортировки вставками составляет O(n²), где n — это количество элементов в списке.
Сортировка вставками, подобно сортировке выборкой, делит список на две части: отсортированную и неотсортированную. Алгоритм проходит по неотсортированному сегменту и вставляет текущий элемент в нужное место в отсортированной части.
Предполагается, что первый элемент списка уже отсортирован. Далее рассматриваем следующий элемент, обозначим его как x. Если x больше первого элемента, он остается на своем месте. Если же он меньше, мы перемещаем первый элемент на вторую позицию, а x устанавливаем на первое место.
Продолжая с остальными элементами из несортированного сегмента, мы сдвигаем более крупные элементы в отсортированной части списка, пока не встретим элемент, меньший чем x, или не дойдем до конца списка. В первом случае x помещается на правильную позицию.
Среднее время выполнения сортировки вставками составляет O(n²), где n — это количество элементов в списке.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🗺️ Как стать ИИ-разработчиком в 2025 году: дорожная карта и ресурсы
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
В 2025 году профессия ИИ-разработчика остается одной из самых востребованных и перспективных.
👀 Как начать свой путь в этой увлекательной, но сложной области?
Мы собрали подробную дорожную карту и полезные ресурсы, которые помогут вам шаг за шагом освоить ключевые навыки и технологии.
Что делает функция id?
Функция id() предназначена для получения уникального идентификатора объекта. Этот идентификатор представляет собой целое число, которое является уникальным для каждого объекта в течение выполнения программы. Функция id() принимает один аргумент — объект, и возвращает его идентификатор.
Важно помнить, что идентификатор объекта может измениться в процессе выполнения программы, если объект перемещается в памяти. Поэтому id() полезна для проверки того, ссылаются ли две переменные на один и тот же объект, но не рекомендуется использовать её для других целей, таких как сравнение объектов на идентичность.
Функция id() предназначена для получения уникального идентификатора объекта. Этот идентификатор представляет собой целое число, которое является уникальным для каждого объекта в течение выполнения программы. Функция id() принимает один аргумент — объект, и возвращает его идентификатор.
Важно помнить, что идентификатор объекта может измениться в процессе выполнения программы, если объект перемещается в памяти. Поэтому id() полезна для проверки того, ссылаются ли две переменные на один и тот же объект, но не рекомендуется использовать её для других целей, таких как сравнение объектов на идентичность.
Какие отличия между модулем, пакетом и библиотекой?
Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные.
Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл
Библиотека — это совокупность пакетов.
Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные.
Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл
__init__.py
, который сообщает интерпретатору Python, что папка является пакетом.Библиотека — это совокупность пакетов.
📢 Ты уже пробовал пройти AI-собеседование? Если нет, вот ещё одно напоминание от нас 🤗
Сейчас на рынке много вакансий, но как найти ту самую, которая идеально подойдёт тебе по навыкам, условиям и зарплате?
✅ Просто загрузи своё резюме
✅ Пройди интервью с нейро-рекрутером от Сбера (всего 15 минут!)
✅ Получай лучшие предложения без бесконечных звонков и ожидания откликов
💡 Алгоритмы анализируют твой опыт и подбирают вакансии, которые подходят на 98% — так что ты точно не потратишь время зря.
Работа мечты может быть на расстоянии одного клика. Попробуешь? 😉
🔗 https://clc.to/GkOTTA
Сейчас на рынке много вакансий, но как найти ту самую, которая идеально подойдёт тебе по навыкам, условиям и зарплате?
✅ Просто загрузи своё резюме
✅ Пройди интервью с нейро-рекрутером от Сбера (всего 15 минут!)
✅ Получай лучшие предложения без бесконечных звонков и ожидания откликов
💡 Алгоритмы анализируют твой опыт и подбирают вакансии, которые подходят на 98% — так что ты точно не потратишь время зря.
Работа мечты может быть на расстоянии одного клика. Попробуешь? 😉
🔗 https://clc.to/GkOTTA
Что такое MQ?
MQ (Message Queue), или очередь сообщений, представляет собой паттерн асинхронного обмена сообщениями, который обеспечивает взаимодействие между распределенными компонентами приложения.
Ключевые преимущества использования MQ:
— Асинхронность: отправитель и получатель могут работать независимо друг от друга.
— Отказоустойчивость: сообщения сохраняются даже в случае сбоев.
— Масштабируемость: позволяет легко добавлять новых производителей и потребителей сообщений.
— Сглаживание пиковой нагрузки: очередь служит буфером для сообщений.
MQ активно применяется для интеграции распределенных систем и построения микросервисных архитектур. Среди популярных реализаций MQ можно выделить RabbitMQ, Kafka и ActiveMQ.
MQ (Message Queue), или очередь сообщений, представляет собой паттерн асинхронного обмена сообщениями, который обеспечивает взаимодействие между распределенными компонентами приложения.
Ключевые преимущества использования MQ:
— Асинхронность: отправитель и получатель могут работать независимо друг от друга.
— Отказоустойчивость: сообщения сохраняются даже в случае сбоев.
— Масштабируемость: позволяет легко добавлять новых производителей и потребителей сообщений.
— Сглаживание пиковой нагрузки: очередь служит буфером для сообщений.
MQ активно применяется для интеграции распределенных систем и построения микросервисных архитектур. Среди популярных реализаций MQ можно выделить RabbitMQ, Kafka и ActiveMQ.
Что такое сериализация?
Сериализация представляет собой процесс преобразования объектов в поток байтов, что позволяет их сохранять или передавать. Это дает возможность сохранить текущее состояние объекта в файл или базу данных и восстановить его в будущем.
Ключевые преимущества сериализации:
— Сохранение и восстановление объектов между сеансами программы.
— Передача объектов по сети между различными приложениями и устройствами.
— Преобразование объектов в платформенно-независимый формат для хранения.
Сериализация представляет собой процесс преобразования объектов в поток байтов, что позволяет их сохранять или передавать. Это дает возможность сохранить текущее состояние объекта в файл или базу данных и восстановить его в будущем.
Ключевые преимущества сериализации:
— Сохранение и восстановление объектов между сеансами программы.
— Передача объектов по сети между различными приложениями и устройствами.
— Преобразование объектов в платформенно-независимый формат для хранения.
Swipe right or swipe left
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
14.02 в 19:00 по МСК
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
14.02 в 19:00 по МСК
Forwarded from Proglib.academy | IT-курсы
🔥 Какие навыки нужны Data Scientist'у и как их освоить
Чтобы стать успешным Data Scientist и уверенно чувствовать себя на рынке труда, важно владеть широким спектром навыков.
➡️ Что внутри статьи:
▪️ Книги, курсы и статьи, чтобы прокачать каждый навык.
▪️ Бесплатные материалы для быстрого старта.
▪️ Задачи для практики.
🔗 Читать статью
🔵 А чтобы подготовиться к собесам для Data Science, забирайте наш курс «Алгоритмы и структуры данных»
Чтобы стать успешным Data Scientist и уверенно чувствовать себя на рынке труда, важно владеть широким спектром навыков.
▪️ Книги, курсы и статьи, чтобы прокачать каждый навык.
▪️ Бесплатные материалы для быстрого старта.
▪️ Задачи для практики.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая разница между
@foobar
и @foobar()
?@foobar
и @foobar()
представляют собой различные подходы к использованию декораторов.@foobar
используется для применения декоратора без аргументов, тогда как @foobar()
позволяет применять декоратор с аргументами. Это означает, что @foobar()
вызывает декоратор foobar с заданными аргументами, а затем полученная декорированная функция применяется к целевой функции.Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🐳 DeepSeek-R1 — очередной значительный шаг в развитии ИИ. Для сообщества ML-разработчиков и исследователей этот релиз важен по двум причинам:
👉 Это модель с открытыми весами, имеющая уменьшенные, дистиллированные версии.
👉 Она использует и анализирует метод обучения, который позволяет воспроизвести модель рассуждений, подобную OpenAI o1.
Разберемся, как происходило обучение DeepSeek-R1: https://proglib.io/sh/SwVUWXrFN3
👉 Это модель с открытыми весами, имеющая уменьшенные, дистиллированные версии.
👉 Она использует и анализирует метод обучения, который позволяет воспроизвести модель рассуждений, подобную OpenAI o1.
Разберемся, как происходило обучение DeepSeek-R1: https://proglib.io/sh/SwVUWXrFN3
🤖 Что означают параметры _value и __value?
_value
: одиночное подчеркивание в начале имени указывает на то, что этот параметр не предназначен для использования за пределами функции. Это всего лишь соглашение, а не ограничение языка.__value
: двойное подчеркивание в начале имени обозначает, что это имя зарезервировано Python для специальных целей, таких как init для конструктора класса. Такие параметры могут выполнять дополнительные функции.Что такое ключевое слово await?
Этот оператор можно применять исключительно внутри асинхронной функции, определенной с помощью async def. await позволяет избежать блокировки основного потока программы во время ожидания результатов асинхронных функций.
С помощью await можно использовать асинхронный код в синхронном стиле, выполняя операции последовательно. При вызове await управление передается обратно в событийный цикл, и выполнение текущей функции приостанавливается до завершения выражения await.
Чаще всего await применяется при вызове асинхронных функций и методов для ожидания их результатов. Также он может использоваться с объектами asyncio.Future и asyncio.Task, чтобы дождаться их завершения.
Если await вызывается для корутины, выполнение текущей корутины приостанавливается до тех пор, пока не завершится вызванная корутина.
Этот оператор можно применять исключительно внутри асинхронной функции, определенной с помощью async def. await позволяет избежать блокировки основного потока программы во время ожидания результатов асинхронных функций.
С помощью await можно использовать асинхронный код в синхронном стиле, выполняя операции последовательно. При вызове await управление передается обратно в событийный цикл, и выполнение текущей функции приостанавливается до завершения выражения await.
Чаще всего await применяется при вызове асинхронных функций и методов для ожидания их результатов. Также он может использоваться с объектами asyncio.Future и asyncio.Task, чтобы дождаться их завершения.
Если await вызывается для корутины, выполнение текущей корутины приостанавливается до тех пор, пока не завершится вызванная корутина.