Привет, друзья!
Поздравляю всех причастных с Днём студента!🤩
Держите небольшую подборку бесплатных курсов, которые помогут в изучении DS - как для начинающих, так и для продолжающих🤓
📚 Для совсем новичков открытый курс по Python на Stepic.
С него можно начинать изучение программирования в принципе, подойдёт не только для будущих дата-саентистов, но и для разработчиков.
➡️ Ссылка на Stepik и на дублирующий плейлист на youtube.
📚 Для погружения в классический ML можно начать с курса лекций и семинаров от МФТИ.
➡️ Ссылка на плейлист youtube.
📚 Для тех, кто уже знаком с основами ML, есть продолжение предыдущего курса от МФТИ, который знакомит с DL.
➡️ Ссылка на плейлист youtube.
📚 Также в качестве дополнения можно ознакомиться с материалами годового курса от DeepLearning School.
➡️ Здесь найдёте материалы базового потока, а здесь - продвинутого.
📚 Для погружения в NLP можете посмотреть материалы курса с ODS.
➡️ Ссылка на курс (нужна регистрация).
📚 Для любителей рекомендательных систем есть два мини курса, также с ODS.
➡️ Ссылка на первую часть и на вторую.
📚 По CV хороший курс на Hugging Face. Единственный возможный минус - он на английском.
➡️ Ссылка на материалы.
Успехов в учёбе и хороших выходных!🍀
#python@data_easy
#classic_ml@data_easy
#cv@data_easy
#nlp@data_easy
Поздравляю всех причастных с Днём студента!
Держите небольшую подборку бесплатных курсов, которые помогут в изучении DS - как для начинающих, так и для продолжающих
С него можно начинать изучение программирования в принципе, подойдёт не только для будущих дата-саентистов, но и для разработчиков.
Успехов в учёбе и хороших выходных!
#python@data_easy
#classic_ml@data_easy
#cv@data_easy
#nlp@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Stepik: online education
Инди-курс программирования на Python
Инди-курс программирования на Python — проверенный временем пошаговый курс для тех, кто хочет освоить разработку с нуля. Уже более 5 лет курс помогает ученикам легко и эффективно изучать python. Мы научим вас создавать свои первые программы, работать с числами…
🔥27❤14👍5
Добавила хэштеги ко всем актуальным постам канала
#python@data_easy
#математика@data_easy
#аналитика@data_easy
#classic_ml@data_easy
#dl@data_easy
#cv@data_easy
#nlp@data_easy
#аудио@data_easy
#mlops@data_easy
#лайфхаки@data_easy
#карьера@data_easy
#полезный_ии@data_easy
ситуацию!
#мем@data_easy
https://t.me/+v1fdmoHV3JwyYTJi
https://youtube.com/@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
EasyData-chat
Чат канала EasyData❤️
❤9🔥5👍1
Привет, друзья!
Конечно, предыдущий пост был шуткой😄
Я снова в деле и сегодня поделюсь подборкой полезных приёмов в Pandas, которые помогут сэкономить время при написании кода, а некоторые ещё и ускорят его🚀
➡️ Для удобства все материалы смотрите в статье.
Всем красивого кода и с Праздником!🕊️
#лайфхаки@data_easy
#python@data_easy
#аналитика@data_easy
Конечно, предыдущий пост был шуткой😄
Я снова в деле и сегодня поделюсь подборкой полезных приёмов в Pandas, которые помогут сэкономить время при написании кода, а некоторые ещё и ускорят его
Всем красивого кода и с Праздником!🕊️
#лайфхаки@data_easy
#python@data_easy
#аналитика@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
6 трюков в Pandas, которые сэкономят время
Когда только начинаешь работать с данными, кажется, что всё сводится к .groupby(), for-циклам и магическому df[df["col"] == "val"]. Но потом приходит понимание: эффективность — в деталях. Вот 6 трюков в Pandas, которые сэкономят вам часы рутины и сделают…
😍10❤8🔥7👍3
Всем привет!
Когда в последний раз вы удивлялись Python? Держите несколько коварных вопросов на внимательность и знание тонкостей языка😏
🐍 изменяемые аргументы по умолчанию (1 и 2),
🐍 dict с ключами разного типа (3),
🐍 логика работы логических операторов (4), с and, кстати, всё работает по тому же принципу ,
🐍 is и магия чисел (5, 6).
Листайте условия в карточках, в конце недели подведём итоги👀
#python@data_easy
Когда в последний раз вы удивлялись Python? Держите несколько коварных вопросов на внимательность и знание тонкостей языка
Листайте условия в карточках, в конце недели подведём итоги👀
#python@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤1
Привет, друзья!
Пришло время подводить итоги прошлых задачек для разминки по Python. Ниже разбор правильных ответов⚠️
1.
Причина в том, что аргумент
2.
Демонстрация того же эффекта, что и в прошлом задании: используем изменяемый аргумент по умолчанию - список
3.
Ключи
4.
ОператорПо аналогии можете подумать, как ведет себя в подобных ситуациях and.
5.
6.
Числа от -5 до 256 кэшируются в Python, и переменные с такими значениями могут ссылаться на один и тот же объект. Значения вне этого диапазона не кэшируются, поэтому
Кто верно догадался во всех задачах - ставьте 😇
Успехов в диалогах с питоном!🐍
#python@data_easy
Пришло время подводить итоги прошлых задачек для разминки по Python. Ниже разбор правильных ответов⚠️
1.
print(magic_func(25)) # [50]
print(magic_func(30)) # [50, 55]Причина в том, что аргумент
lst=[] - изменяемый объект. Он сохраняется между вызовами функции. Поэтому при втором вызове к списку добавляется второй элемент.2.
print(extend_list(1)) # [1]
print(extend_list(2)) # [1, 2]
print(extend_list(3, [])) # [3]
print(extend_list(4)) # [1, 2, 4]Демонстрация того же эффекта, что и в прошлом задании: используем изменяемый аргумент по умолчанию - список
lst. Он сохраняет своё состояние между вызовами, если не передать другой. В третьем вызове передан новый список, поэтому результат уже не связан с предыдущими:)3.
d = {1: 1, 1.0: 1.0, '1': '1', True: True}
print(d) # {1: True, '1': '1'}Ключи
1, 1.0 и True считаются равными в словаре, потому что 1 == 1.0 == True (можете проверить это отдельно). Поэтому остаётся последний по порядку ключ из этой группы (True), и он перезаписывает предыдущие.4.
print(tricky_or([], 'fallback')) # 'fallback'
print(tricky_or({}, 0)) # 0
print(tricky_or('', None)) # NoneОператор
or возвращает первое "истинное" значение или последнее, если все ложные. [], {}, '' считаются ложными, 'fallback' - истинное, 0 и None - тоже ложные, но 0 возвращается, потому что он второй аргумент. 5.
print(x == y) # True
print(x is y) # False== сравнивает значения, по этому принципу списки равны. is сравнивает идентичность объектов - а у нас два разных списка в памяти, находящихся по разным адресам.6.
a = 256
b = 256
print(a is b) # True
a = 257
b = 257
print(a is b) # FalseЧисла от -5 до 256 кэшируются в Python, и переменные с такими значениями могут ссылаться на один и тот же объект. Значения вне этого диапазона не кэшируются, поэтому
a is b даёт False.Кто верно догадался во всех задачах - ставьте 😇
Успехов в диалогах с питоном!🐍
#python@data_easy
❤9👍4😇1
Привет, друзья!
Сегодня поговорим про Numba - инструмент, который превращает обычный Python-код в "почти C" по скорости🏃♂️
Numba - это JIT-компилятор (Just-In-Time) для Python. Если вкратце, то он анализирует функции и компилирует их в машинный код прямо во время исполнения. То есть, вместо интерпретируемого Python код исполняется как скомпилированный.
Воспользоваться возможностями Numba крайне легко - нужно просто добавить декоратори всё! 🧑💻
Но пара нюансов всё же есть:
➡️ Во-первых, не все операции могут быть ускорены таким способом. Общий рецепт таков: "чем проще и численно интенсивнее функция, тем лучше". Вот несколько типичных примеров, которые хороши для Numba:
1. численные циклы (циклы for, while)
2. операции с массивами numpy
3. алгоритмы оптимизации, матричные вычисления
4. генерация чисел и математические функции (sin, exp, sqrt, и т.д.)
5. фильтрация, агрегация и другие различные манипуляции над массивами
6. простые симуляции (например, метод Монте-Карло)
➡️ А во-вторых, при первом запуске функция с Numba может работать даже медленнее обычной Python-версии🙂 Всё потому, что в первый раз Numba не просто выполняет код, а сначала компилирует его в машинный код - и это занимает время. Но уже со второго вызова скомпилированный вариант готов и работает в разы быстрее, как настоящий нативный код.
А насколько быстрым получается код с добавлением Numba - смотрите на скринах:) Замеры проведены на втором запуске😉
Документация библиотеки +:
➡️ с список Python-операций, которые могут быть ускорены
➡️ с аналогичный список для Numpy-функций
Хорошей недели и гармоничных распределений!☀️
#python@data_easy
Сегодня поговорим про Numba - инструмент, который превращает обычный Python-код в "почти C" по скорости
Numba - это JIT-компилятор (Just-In-Time) для Python. Если вкратце, то он анализирует функции и компилирует их в машинный код прямо во время исполнения. То есть, вместо интерпретируемого Python код исполняется как скомпилированный.
Воспользоваться возможностями Numba крайне легко - нужно просто добавить декоратор
@njit к функции,
@njit
def sigmoid_numba(x):
return 1 / (1 + np.exp(-x))
Но пара нюансов всё же есть:
1. численные циклы (циклы for, while)
2. операции с массивами numpy
3. алгоритмы оптимизации, матричные вычисления
4. генерация чисел и математические функции (sin, exp, sqrt, и т.д.)
5. фильтрация, агрегация и другие различные манипуляции над массивами
6. простые симуляции (например, метод Монте-Карло)
А насколько быстрым получается код с добавлением Numba - смотрите на скринах:) Замеры проведены на втором запуске😉
Документация библиотеки +:
Хорошей недели и гармоничных распределений!
#python@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤10👍5
Привет, друзья!
Поздравляю с нашим профессиональным праздников - 256-м днём в году!
Пока вайбкодинг ещё не вытеснил программеров в Data Science, и пока Python играет одну из ключевых ролей, давайте освежим важные особенности языка, которые часто спрашивают даже у сеньоров на собеседованиях✍️
1. Python со статической или динамической типизацией?
2. Разница между генераторами и итераторами?
3. В чем разница между yield и return?
4. А что такое декораторы и зачем они нужны?
5. Какие бывают пространства имен в Python?
6. Как передаются аргументы в функции - по значениям или по ссылке?
7. Как происходит управление памятью в Python?
8. Что такое GIL и разрешена ли многопоточность в Python?
9. Что такое дескриптор?
10. Как работает менеджер контекста with под капотом?
Кто все и так знал - ставьте 🐳
#python@data_easy
Поздравляю с нашим профессиональным праздников - 256-м днём в году!
Пока вайбкодинг ещё не вытеснил программеров в Data Science, и пока Python играет одну из ключевых ролей, давайте освежим важные особенности языка, которые часто спрашивают даже у сеньоров на собеседованиях
1. Python со статической или динамической типизацией?
Напомним разновидности:
- Статическая типизация (C++, Java): тип переменной задаётся заранее и проверяется до запуска программы.
- Динамическая типизация (Python, JavaScript): тип переменной определяется во время выполнения программы - а именно, в момент присваивания. В Python это происходит при исполнении соответствующей строки кода (ведь он интерпретируемый ), поэтому одна и та же переменная может в разные моменты хранить объекты разных типов.
2. Разница между генераторами и итераторами?
Вспомним, что итерируемый объект - это то, из чего можно последовательно доставать элементы (список, множество, строка).
Итератор - это «механизм перебора»: объект, который умеет по одному выдавать элементы итерируемого объекта. Для этого у него есть методы iter (возвращает сам итератор) и next возвращает следующий элемент)
Генератор — это удобный способ создать итератор. Его пишут через yield или в виде генераторного выражения. Главное отличие: генератор сам запоминает своё состояние между вызовами и продолжает работу с того места, где остановился.
3. В чем разница между yield и return?
return завершает функцию и возвращает одно значение.
yield приостанавливает функцию, возвращает значение, но сохраняет её состояние, чтобы можно было продолжить выполнение этой функции позже. Используется как раз для создания генераторов!
4. А что такое декораторы и зачем они нужны?
Декоратор - это вызываемый объект (функция или класс с call), который принимает другую функцию или класс и возвращает «обёрнутую» версию. То есть позволяет добавлять новое поведение к функциям/классам без изменения их кода (примеры: логирование, кеширование, измерение времени работы фунции).
5. Какие бывают пространства имен в Python?
Есть четыре уровня пространств имён:
- Local (локальное внутри функции)
- Enclosing (это локальное пространство переменных внешней функции, к которому может обращаться внутренняя функция, если она определена внутри этой внешней)
- Global (глобальное внутри модуля)
- Built-in (встроенные объекты Python).
Запоминается по правилу LEGB.
6. Как передаются аргументы в функции - по значениям или по ссылке?
В Python аргументы передаются по ссылке на объект, но сами ссылки копируются. Если объект изменяемый (список, словарь) - изменения видны и снаружи функции. Если неизменяемый (int, str, tuple) - создаётся новый объект.
7. Как происходит управление памятью в Python?
Python управляет памятью автоматически: у каждого объекта есть счётчик ссылок - когда на объект больше нет активных ссылок, память освобождается сразу. Для циклических ссылок (когда объекты ссылаются друг на друга) работает отдельный garbage collector, который периодически запускается в фоне.
8. Что такое GIL и разрешена ли многопоточность в Python?
GIL (Global Interpreter Lock) - это глобальная блокировка интерпретатора, которая не позволяет одновременно выполнять код в нескольких потоках. Поэтому для CPU-ограниченных задач многопоточность в Python не даёт прироста. Но она хорошо работает для задач ввода-вывода (I/O) и для вычислений внутри библиотек, реализованных на C/C++ (NumPy или Faiss), которые обходят GIL.
9. Что такое дескриптор?
Дескриптор - это объект с методами set/get/delete который управляет доступом к атрибуту другого класса. На дескрипторах реализованы property, методы класса, статические методы.
10. Как работает менеджер контекста with под капотом?
Менеджер контекста - это объект, у которого определены методы enter и exit. При входе в блок with вызывается enter, при выходе - exit, что гарантирует корректное освобождение ресурсов (например, закрытие файла).
Кто все и так знал - ставьте 🐳
#python@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤26🔥11🐳7🎉3👍1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья!🍁
Похоже, ydata-profiling сдаёт позиции - библиотеки для “анализа-данных-в-одну-строчку” становятся всё умнее и красивее.
Недавно наткнулась на ещё одну интересную утилиту - PyGWalker. Помимо наглядного отчёта, у неё есть несколько крутых преимуществ:
➡️ отрабатывает почти мгновенно (особенно на средних по размеру датасетах, точно быстрее ydata);
➡️ в открывающемся интерактивном окне можно буквально перетаскивать колонки для построения графиков, менять их тип, стиль и т.п.;
➡️ ну и самое интересное - это встроенный ИИ-помощник прямо в ноутбуке, который обещают бесплатно для студентов (по вузовской почте).
🍁С чего начать?
➡️ Установите библиотеку:
➡️ Импортируйте и запустите визуализацию на своём датафрейме, в открывшемся окне можно исследовать данные “вживую”:
➡️ Если хотите подключить ИИ-помощника, нужно оформить подписку или подтвердить вузовскую почту по ссылке. МФТИ пока нет в списке, ждём когда рассмотрят заявку ⏰
🍁Полезные ссылки:
➡️ официальный репозиторий проекта
➡️ официальная документация
➡️ ссылка на туториал на русском
➡️ демо в colab
➡️ веб-интерфейс
Всем красивых графиков!
#python@data_easy
#аналитика@data_easy
Похоже, ydata-profiling сдаёт позиции - библиотеки для “анализа-данных-в-одну-строчку” становятся всё умнее и красивее.
Недавно наткнулась на ещё одну интересную утилиту - PyGWalker. Помимо наглядного отчёта, у неё есть несколько крутых преимуществ:
🍁С чего начать?
pip install pygwalker
import pandas as pd
import pygwalker as pyg
df = pd.read_csv("data.csv")
pyg.walk(df)
🍁Полезные ссылки:
Всем красивых графиков!
#python@data_easy
#аналитика@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥16❤9🐳6
Привет, друзья!
Недавно наткнулась на классный образовательный ютуб-канал freeCodeCamp - кладезь уроков, многие из которых - полные университетские курсы от ведущих ВУЗов мира.
Ниже подборка видео по темам из DS и ML:
📚 Python с нуля
16-часовой курс от Гарварда по Python - от основ до ООП
➡️ ссылка
📚 Git для новичков
Свежее видео на 2026 про все основные команды за полтора часа
➡️ ссылка
📚 Алгоритмы и структуры данных
Целых 48 часов теории с примерами😱
➡️ ссылка
📚 Базы данных и SQL
Ещё один курс от Гарварда в одном 11-часовом видео
➡️ ссылка
📚 LLM с нуля
За 6 часов объяснение MoE, SFT, RLHF и разбор того, как обучаются современные LLM
➡️ ссылка
📚 Fine-tuning LLM
Продолжение темы: что, зачем и как дообучать, и где это вообще имеет смысл
➡️ ссылка
📚 Разбор Qwen
Отдельное видео про архитектуру и детали (здесь найдёте про muon)
➡️ ссылка
📚 Гайд по агентам
Если интересна агентная логика, пайплайны и взаимодействие LLM с окружением
➡️ ссылка
И конечно, всех с Днём Студента!Для нашей профессии пословица "век живи - век учись" особенно актуальна 👩🎓
#python@data_easy
#nlp@data_easy
#classic_ml@data_easy
Недавно наткнулась на классный образовательный ютуб-канал freeCodeCamp - кладезь уроков, многие из которых - полные университетские курсы от ведущих ВУЗов мира.
Ниже подборка видео по темам из DS и ML:
16-часовой курс от Гарварда по Python - от основ до ООП
➡️ ссылка
Свежее видео на 2026 про все основные команды за полтора часа
➡️ ссылка
Целых 48 часов теории с примерами😱
➡️ ссылка
Ещё один курс от Гарварда в одном 11-часовом видео
➡️ ссылка
За 6 часов объяснение MoE, SFT, RLHF и разбор того, как обучаются современные LLM
➡️ ссылка
Продолжение темы: что, зачем и как дообучать, и где это вообще имеет смысл
➡️ ссылка
Отдельное видео про архитектуру и детали (здесь найдёте про muon)
➡️ ссылка
Если интересна агентная логика, пайплайны и взаимодействие LLM с окружением
➡️ ссылка
И конечно, всех с Днём Студента!
#python@data_easy
#nlp@data_easy
#classic_ml@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤15❤🔥1👍1😍1
Привет, друзья!
Если вы устали от медленного pip, сложных poetry.lock и зоопарка инструментов вокруг Python-окружений, то стоит посмотреть на uv.
🔥 uv - это современный менеджер зависимостей и окружений для Python, который написан на Rust. Почему это не очередной инструмент, а реально новая эра?
😐 Все в одном бинаре: установка пакетов, создание и управление виртуальными окружениями, разрешение зависимостей, lock-файлы, запуск Python-команд в изоляции… раньше это приходилось собирать из pip, venv/virtualenv, pip-tools и poetry - а теперь достаточно только uv! Всего один бинарь, и ничего лишнего.
😐 Скорость: Rust-реализация + собственная система расчёта зависимостей = мгновенные установки и пересборки, особенно на больших ML-проектах и при CI/CD. Говорят, что может достигать 100x по скорости в сравнении с pip!
😐 Глобальный кэш: пакеты, уже скачанные для одного проекта, повторно используются и в других окружениях - как итог, меньше запросов и экономия места на диске.
😐 Отличие от poetry / pip: uv не использует за основу существующие инструменты, а сам полностью управляет всем процессом. Это не только быстрее, но и гораздо более предсказуемо - lock-файл читаемый, стабильный и действительно воспроизводимый.
Главное тут, что uv не “оборачивает pip”, а заменяет его функциональность!
🔥 А основные команды до боли напоминают уже знакомые инструменты...
🔥 Полезные ссылки:
• официальная документация тут
• а для любителей покопаться в коде открыт официальный репозиторий
Вероятно, мы на пороге новой эры управления Python-зависимостями.
Всем продуктивного февраля!✨
#python@data_easy
#mlops@data_easy
Если вы устали от медленного pip, сложных poetry.lock и зоопарка инструментов вокруг Python-окружений, то стоит посмотреть на uv.
Главное тут, что uv не “оборачивает pip”, а заменяет его функциональность!
# установка самого uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# проверка
uv --version
# создание окружения и установка зависимостей
uv venv
uv pip install numpy pandas scikit-learn
• официальная документация тут
• а для любителей покопаться в коде открыт официальный репозиторий
Вероятно, мы на пороге новой эры управления Python-зависимостями.
Всем продуктивного февраля!
#python@data_easy
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11🔥7❤5❤🔥2😐1