Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🎉 OpenCV исполнилось 25 лет — серьёзная веха для мира компьютерного зрения
Библиотека была выпущена Intel в 2000 году как open source — и с тех пор стала стандартом де-факто.
OpenCV democratized компьютерное зрение: сделала доступной обработку изображений и видео не только крупным лабораториям и корпорациям, но и каждому студенту, разработчику и энтузиасту.
Благодаря OpenCV миллионы людей научились:
— распознавать лица и объекты;
— строить системы трекинга и распознавания движений;
— анализировать кадры в реальном времени;
— автоматизировать обработку изображений и видео в исследованиях и бизнесе.
👉 25 лет спустя — это по-прежнему первая библиотека, которую изучают в CV, и первый инструмент, к которому тянется рука при решении практической задачи.
Поздравляем библиотеку — 🎉
🔗 Блог-пост в честь юбилея: https://clc.to/zEyBLQ
А вы помните, с чего началось ваше знакомство с OpenCV?
Библиотека дата-сайентиста #свежак
Библиотека была выпущена Intel в 2000 году как open source — и с тех пор стала стандартом де-факто.
OpenCV democratized компьютерное зрение: сделала доступной обработку изображений и видео не только крупным лабораториям и корпорациям, но и каждому студенту, разработчику и энтузиасту.
Благодаря OpenCV миллионы людей научились:
— распознавать лица и объекты;
— строить системы трекинга и распознавания движений;
— анализировать кадры в реальном времени;
— автоматизировать обработку изображений и видео в исследованиях и бизнесе.
👉 25 лет спустя — это по-прежнему первая библиотека, которую изучают в CV, и первый инструмент, к которому тянется рука при решении практической задачи.
Поздравляем библиотеку — 🎉
А вы помните, с чего началось ваше знакомство с OpenCV?
Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
#open_source
#ml
#classic
#myproject@dm_projects_log
Замутил новую версию либы. Переработал загрузчик датасетов полностью.
Что не отображено в доках, так это изменение подхода к разработке: больше ручной работы - меньше нейронок.
#ml
#classic
#myproject@dm_projects_log
Замутил новую версию либы. Переработал загрузчик датасетов полностью.
Что не отображено в доках, так это изменение подхода к разработке: больше ручной работы - меньше нейронок.
GitHub
Release DmDSLab 2.0.0 - UCI Integration & Modern Python · Dmatryus/DmDSLab
🎉 DmDSLab 2.0.0 - UCI Integration & Modern Python
Мы рады представить DmDSLab 2.0.0 - крупнейшее обновление библиотеки с момента её создания! Эта версия привносит долгожданную интеграцию с UCI ...
Мы рады представить DmDSLab 2.0.0 - крупнейшее обновление библиотеки с момента её создания! Эта версия привносит долгожданную интеграцию с UCI ...
🔥2
#classic #open_source
Nvidia выпустили статью об ускорении вычислений в pandas посредством использования GPU через библиотеку NVIDIA cuDF.
Прикол в том, что его применение (по крайней мере в тетрадках) не требует переписывания кода, а только использования магической операции.
Что касается использования не в тетрадке, то операции надо делать через библиотечный датафрейм, у которого API идентичное пандасовскому.
В статье разобраны 3 кейса с ускорением.
Nvidia выпустили статью об ускорении вычислений в pandas посредством использования GPU через библиотеку NVIDIA cuDF.
Прикол в том, что его применение (по крайней мере в тетрадках) не требует переписывания кода, а только использования магической операции.
Что касается использования не в тетрадке, то операции надо делать через библиотечный датафрейм, у которого API идентичное пандасовскому.
В статье разобраны 3 кейса с ускорением.
NVIDIA Technical Blog
3 pandas Workflows That Slowed to a Crawl on Large Datasets—Until We Turned on GPUs
If you work with pandas, you’ve probably hit the wall. It’s that moment when your trusty workflow, so elegant on smaller datasets, grinds to a halt on a large one. A script that once took seconds now…
threshold_methods.html
54.8 KB
#classic
Я тут на прошлой неделе провел мини ресерч по выбору порога predict_proba для псевдо разметки. Результатами сразу не стал делиться, так как планировал ещё поставить эксперимент и посмотреть на методы в деле, но это довольно муторно, так что я решил отложить.
На практике мы применяем метод через оптимизацию F1, но в связке с другими метриками, которые могут быть понятнее бизнесу или просто лучше подходить под специфику задачи. Поэтому луче строить множество графиков и метрик для балансировки, чтобы принять решение осознано, а не полагаясь на максинг метрики.
У меня в ресерче указано, что F1 можно применять для выбора порога на бинарной классификации, но если настраивается порог для каждого класса в отдельности (что рекомендуется делать при различиях в распределениях классов), то можно решать задачу, как бинарную классификацию в формате один-против всех для каждого класса.
Я тут на прошлой неделе провел мини ресерч по выбору порога predict_proba для псевдо разметки. Результатами сразу не стал делиться, так как планировал ещё поставить эксперимент и посмотреть на методы в деле, но это довольно муторно, так что я решил отложить.
На практике мы применяем метод через оптимизацию F1, но в связке с другими метриками, которые могут быть понятнее бизнесу или просто лучше подходить под специфику задачи. Поэтому луче строить множество графиков и метрик для балансировки, чтобы принять решение осознано, а не полагаясь на максинг метрики.
У меня в ресерче указано, что F1 можно применять для выбора порога на бинарной классификации, но если настраивается порог для каждого класса в отдельности (что рекомендуется делать при различиях в распределениях классов), то можно решать задачу, как бинарную классификацию в формате один-против всех для каждого класса.
pandas-polars-comparison-html.html
36 KB
#classic
Вы наверняка слышали, что Polaris быстрее, сильнее и лучше, чем Pandas. Я всегда относился к этому с некоторым скепсисом. Теперь не буду 🙃
В общем, провел на днях ресерч по вопросу. Сам ресерч во вложении, но, если коротко: отдавайте предпочтение Polaris на этапе ETL. Большинство ML библиотек не поддерживают Polaris, так что в ML данные лучше передавать в numpy или Pandas.
Вы наверняка слышали, что Polaris быстрее, сильнее и лучше, чем Pandas. Я всегда относился к этому с некоторым скепсисом. Теперь не буду 🙃
В общем, провел на днях ресерч по вопросу. Сам ресерч во вложении, но, если коротко: отдавайте предпочтение Polaris на этапе ETL. Большинство ML библиотек не поддерживают Polaris, так что в ML данные лучше передавать в numpy или Pandas.
🔥3
Forwarded from Градиент обреченный (Sergei Averkiev)
🔺 Открытые модели от OpenAI
Долгожданный open source от дяди Сэма.
🔸 Выложили две модели — 20B и 120B. Обе MoE, активных параметров у них 3.6B и 5.1B.
🔸 Должны влазить в 16Gb и 80Gb видеокарты. Вот тут релиз transformers 4.55.0 с описанием.
🔸 Модельки чисто текстовые, с контекстом 128k. Токенайзер тот же, что у gpt-4o.
🔸 Есть демо, чтобы поиграться с моделями.
👉 HF | Релиз
Долгожданный open source от дяди Сэма.
🔸 Выложили две модели — 20B и 120B. Обе MoE, активных параметров у них 3.6B и 5.1B.
🔸 Должны влазить в 16Gb и 80Gb видеокарты. Вот тут релиз transformers 4.55.0 с описанием.
🔸 Модельки чисто текстовые, с контекстом 128k. Токенайзер тот же, что у gpt-4o.
🔸 Есть демо, чтобы поиграться с моделями.
👉 HF | Релиз
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🐬 Dolphin — превращает PDF в структурированные данные
Dolphin (Document Image Parsing via Heterogeneous Anchor Prompting) — 100% open source-модель для автоматического разбора PDF и сканов.
Зачем нужен:
— Конвертирует документы в готовые форматы: Markdown, HTML, LaTeX, JSON.
— Извлекает текст, таблицы, формулы и изображения.
— Полезен как для подготовки данных для LLM, так и для любых автоматизированных систем, архивов, поиска и аналитики.
Как работает:
1️⃣ Анализ макета страницы — определяет все элементы в естественном порядке чтения.
2️⃣ Параллельный парсинг — с «якорями» и промптами под каждый тип контента.
💡 Лёгкая архитектура + параллельная обработка = высокая скорость без потери качества.
🔗 Репозиторий с кодом и моделями: https://clc.to/6gPIwA
Библиотека дата-сайентиста #буст
Dolphin (Document Image Parsing via Heterogeneous Anchor Prompting) — 100% open source-модель для автоматического разбора PDF и сканов.
Зачем нужен:
— Конвертирует документы в готовые форматы: Markdown, HTML, LaTeX, JSON.
— Извлекает текст, таблицы, формулы и изображения.
— Полезен как для подготовки данных для LLM, так и для любых автоматизированных систем, архивов, поиска и аналитики.
Как работает:
Представьте, что у вас есть 500 отчётов в PDF с финансовыми таблицами и графиками. Dolphin превращает их в аккуратный CSV или JSON, готовый для анализа в Pandas или загрузки в базу данных — без ручного копипаста и правок.
💡 Лёгкая архитектура + параллельная обработка = высокая скорость без потери качества.
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
#open_source
#myproject@dm_projects_log
Новая утилита: file_size_sorter.py — скрипт анализа дискового пространства.
Изначально написал для того, чтобы проверить почему репозиторий так много весит. Нашел запушенные артефакты, так что полезное. Ещё эта штуковина полезная в целом для анализа диска, когда его нужно почистить.
Скрипт использует только стандартную библиотеку Python, так что зависимостей нет.
Примеры использования:
#myproject@dm_projects_log
Новая утилита: file_size_sorter.py — скрипт анализа дискового пространства.
Изначально написал для того, чтобы проверить почему репозиторий так много весит. Нашел запушенные артефакты, так что полезное. Ещё эта штуковина полезная в целом для анализа диска, когда его нужно почистить.
Скрипт использует только стандартную библиотеку Python, так что зависимостей нет.
Примеры использования:
# Найти 10 самых больших файлов в домашней директории
python file_size_sorter.py /home/user 10
# Посмотреть все файлы проекта, отсортированные по размеру
python file_size_sorter.py ./my_project
# Найти самые маленькие файлы (полезно для очистки мелкого мусора)
python file_size_sorter.py /tmp 20 --asc
GitHub
miniutils/files/file_size_sorter.py at main · Dmatryus/miniutils
A set of small scripts for simple tasks. Contribute to Dmatryus/miniutils development by creating an account on GitHub.
#open_source
#myproject@dm_projects_log
Добавил в утилки крутую фичу, которую давно хотел замутить. Честно говоря, оно не особо тянет на миниутилку, так как кода там довольно много и логика не простая, но пока так, ибо мне не охота мутить отдельное приложение, но может быть, когда-нибудь...
Кстати, сам конвертер занимает всего один файл, но при этом умеет больше, чем многие платные сервисы!
✨ Что умеет новый модуль?
📝 Markdown → HTML/PDF за одну команду
🎨 4 встроенные темы (включая тёмную!)
🌈 50+ стилей подсветки кода
📊 Mermaid диаграммы прямо в документах
⚡️ Работает офлайн или через API
🎯 Для кого это?
• Пишете документацию? Теперь она будет красивой!
• Ведёте техблог? Конвертируйте посты в PDF
• Делаете презентации? Mermaid диаграммы включены!
• Учитесь/учите? Идеально для конспектов с кодом
💡 Простой пример
Если честно, то я не проводил обширного тестирования и проблемы все ещё могут быть, но в ходе разработки решил кучу проблемных ситуаций. Если что-то пойдет не так, можете писать мне в личку или сюда в директ.
GitHub: https://github.com/Dmatryus/miniutils/tree/main
#myproject@dm_projects_log
Добавил в утилки крутую фичу, которую давно хотел замутить. Честно говоря, оно не особо тянет на миниутилку, так как кода там довольно много и логика не простая, но пока так, ибо мне не охота мутить отдельное приложение, но может быть, когда-нибудь...
Кстати, сам конвертер занимает всего один файл, но при этом умеет больше, чем многие платные сервисы!
✨ Что умеет новый модуль?
📝 Markdown → HTML/PDF за одну команду
🎨 4 встроенные темы (включая тёмную!)
🌈 50+ стилей подсветки кода
📊 Mermaid диаграммы прямо в документах
⚡️ Работает офлайн или через API
🎯 Для кого это?
• Пишете документацию? Теперь она будет красивой!
• Ведёте техблог? Конвертируйте посты в PDF
• Делаете презентации? Mermaid диаграммы включены!
• Учитесь/учите? Идеально для конспектов с кодом
💡 Простой пример
# Обычная конвертация
python md_converter.py README.md
# PDF с тёмной темой
python md_converter.py docs.md --format pdf --theme dark
Если честно, то я не проводил обширного тестирования и проблемы все ещё могут быть, но в ходе разработки решил кучу проблемных ситуаций. Если что-то пойдет не так, можете писать мне в личку или сюда в директ.
GitHub: https://github.com/Dmatryus/miniutils/tree/main
GitHub
GitHub - Dmatryus/miniutils: A set of small scripts for simple tasks.
A set of small scripts for simple tasks. Contribute to Dmatryus/miniutils development by creating an account on GitHub.
🔥4
Forwarded from Machine learning Interview
This media is not supported in your browser
VIEW IN TELEGRAM
🎤 Microsoft выкатил **VibeVoice** — новую SoTA модель Text-to-Speech (TTS) на **1.5B параметров** под лицензией MIT 🔥
Возможности
- 🎧 Генерация до 90 минут аудио за раз
- 👥 Поддержка >4 голосов одновременно
- ⚡ Режим стриминга + готовится версия на 7B
- 🌍 Кросс-языковая генерация и даже синтез пения 🎶
- 🎭 Управление эмоциями и экспрессивностью речи
Это делает VibeVoice одним из самых мощных и доступных open-source TTS-решений прямо сейчас. Огромный шаг от Microsoft в сторону открытых голосовых технологий! 🚀
https://huggingface.co/microsoft/VibeVoice-1.5B
@machinelearning_interview
Возможности
- 🎧 Генерация до 90 минут аудио за раз
- 👥 Поддержка >4 голосов одновременно
- ⚡ Режим стриминга + готовится версия на 7B
- 🌍 Кросс-языковая генерация и даже синтез пения 🎶
- 🎭 Управление эмоциями и экспрессивностью речи
Это делает VibeVoice одним из самых мощных и доступных open-source TTS-решений прямо сейчас. Огромный шаг от Microsoft в сторону открытых голосовых технологий! 🚀
https://huggingface.co/microsoft/VibeVoice-1.5B
@machinelearning_interview
❤2
Forwarded from Machine learning Interview
This media is not supported in your browser
VIEW IN TELEGRAM
💥 SmolVLA: компактная VLA-модель для роботов, которая обогнала крупных конкурентов — и она полностью open source!
🚀 Что это такое:
SmolVLA — новая vision-language-action модель для робототехники, обученная только на открытых датасетах LeRobot (Hugging Face). Несмотря на размер всего 450M параметров, она показывает результаты лучше более крупных моделей вроде ACT.
📌 Почему интересно:
✅ +26% точности благодаря предобучению на open-source данных
✅ Запускается даже на обычном MacBook
✅ Ответы на 30% быстрее за счёт async-инференса и оптимизаций
✅ Сильные результаты на Meta-World, LIBERO, SO100, SO101
✅ Полностью открыта: веса, код, пайплайн и стек для оценки
🧠 Трюки для эффективности:
- меньше визуальных токенов
- выходы берутся с промежуточных слоёв
- разделение perception и action для ускорения
📍 SmolVLA — отличный пример того, что может дать сообщество, когда делится данными и строит открытые решения в робототехнике.
https://huggingface.co/blog/smolvla
🚀 Что это такое:
SmolVLA — новая vision-language-action модель для робототехники, обученная только на открытых датасетах LeRobot (Hugging Face). Несмотря на размер всего 450M параметров, она показывает результаты лучше более крупных моделей вроде ACT.
📌 Почему интересно:
✅ +26% точности благодаря предобучению на open-source данных
✅ Запускается даже на обычном MacBook
✅ Ответы на 30% быстрее за счёт async-инференса и оптимизаций
✅ Сильные результаты на Meta-World, LIBERO, SO100, SO101
✅ Полностью открыта: веса, код, пайплайн и стек для оценки
🧠 Трюки для эффективности:
- меньше визуальных токенов
- выходы берутся с промежуточных слоёв
- разделение perception и action для ускорения
📍 SmolVLA — отличный пример того, что может дать сообщество, когда делится данными и строит открытые решения в робототехнике.
https://huggingface.co/blog/smolvla
#python
Я позволю себе украсть идею у Дэна Байдера, чью книгу я сейчас читаю и запустить серию мыслей по поводу программирования на Python. Для меня это одновременно конспект и рефлексия на тему содержания книги, а вам просто может быть интересно.
И первая тема: менеджеры контекста и инструкции with.
Наверняка вы хоть раз писали что-то типа
with open("model.pickle", "br") as f:
model = pickle.read(f)
Это стандартный путь работы с файлами в python. Зачем так делать? Чтобы гарантировать закрытие контекста файла. В файлах используются специальные дескрипторы, и если их не поставить, то файл может поламаться.
Эта штука называется контекстом. Открытие файла - открывает контекст f, а функция f.close(). И вот чтобы не париться со всем этим есть конструкция менеджера контекста и инструкция with которая упрощает работу с ним.
Такие же приколы есть например с БД, где коннект имеет контекста, и его необходимо закрывать, например, чтобы освободить пулл коннектов.
Вы можете мутить свои менеджеры контекстов, взаимодействующие с
Есть и другой способ. Его просто примером покажу. Там декоратор и фабричная функция. Подходы эквивалентны выбирать, отталкиваясь от кодстайла.
Я позволю себе украсть идею у Дэна Байдера, чью книгу я сейчас читаю и запустить серию мыслей по поводу программирования на Python. Для меня это одновременно конспект и рефлексия на тему содержания книги, а вам просто может быть интересно.
И первая тема: менеджеры контекста и инструкции with.
Наверняка вы хоть раз писали что-то типа
with open("model.pickle", "br") as f:
model = pickle.read(f)
Это стандартный путь работы с файлами в python. Зачем так делать? Чтобы гарантировать закрытие контекста файла. В файлах используются специальные дескрипторы, и если их не поставить, то файл может поламаться.
Эта штука называется контекстом. Открытие файла - открывает контекст f, а функция f.close(). И вот чтобы не париться со всем этим есть конструкция менеджера контекста и инструкция with которая упрощает работу с ним.
Такие же приколы есть например с БД, где коннект имеет контекста, и его необходимо закрывать, например, чтобы освободить пулл коннектов.
Вы можете мутить свои менеджеры контекстов, взаимодействующие с
with для этого нужно реализовать функции __enter__(self) для открытия контекста и __exit__(self, exc_type, exc_val, exc_tb) для закрытия. Есть и другой способ. Его просто примером покажу. Там декоратор и фабричная функция. Подходы эквивалентны выбирать, отталкиваясь от кодстайла.
from contextlib import contextmanager
@contextmanager
def managed_file(name):
try:
f = open(name, 'w')
yield f
finally:
f.close()
#LLM
🤖 Мой 40 дневный опыт работы с Claude
Многие спрашивали меня про подписку на Claude Pro, так что решил поделиться своим опытом.
🚀 Как всё начиналось
Изначально я начал пробовать Claude просто из любопытства. Честно говоря, первые попытки были полным провалом.
Знаете эту проблему с большими нейронками? Попросишь его приготовить макароны, а он начинает с того, как вырастить пшеницу 😅
Серьёзно — дикий over-engineering на ровном месте. Простые вещи усложнялись до невозможности, а результат чаще всего тупо не получался.
💰 Вопрос подписки
Быстро понял, что плана за $20 не хватает. Типа немного работать над чем-то небольшим - ок, но это не мой путь)
Перешёл на Claude Pro за $100 — лимиты в 5 раз больше. Вот это уже нормально!
Когда заканчивается лимит? Обычно где-то к концу рабочего дня, часов в 18-19 или 23, если весь день активно пользовался. Обычно обновления ждешь час-два. Что хорошо для перерыва.
⚡ Что я делаю с Claude
Рабочие задачи:
Пишу небольшие функции и скрипты (до 200 строк)
Переписываю код на другие фреймворки
Добавляю функциональность v2 к существующим проектам
Создаю презентации (получается вполне достойно)
Исследования и анализ данных
Личные проекты:
* Различные эксперименты с кодом
* Обучающие материалы
🎯 Что работает хорошо
* Структурирование информации
* Создание технической документации
Сейчас у меня ~2-3 балла по эффективности из 5 возможных.
❌ Ограничения
Чего Claude НЕ умеет:
* Рисовать (если нужны иллюстрации — ищите другие решения)
* Работать с визуальным контентом на продвинутом уровне
* Работать с аудио
Иногда он всё ещё слишком позитивный и "правильный" в общении — как будто общается с детьми.
🤔 Стоит ли оно того?
Честно? Чисто функционально Claude не стоит $100 в месяц.
Но я продлил подписку.
Почему? Потому что мне просто весело с ним работать! Это как прикольная игрушка, которая ещё и пользу приносит.
Я всё ещё прокачиваю свои навыки работы с ним. С каждым разом становлюсь чуть более эффективным в формулировке запросов и получении нужных результатов.
В одном из следующих постов расскажу подробнее про конкретные кейсы.
🤖 Мой 40 дневный опыт работы с Claude
Многие спрашивали меня про подписку на Claude Pro, так что решил поделиться своим опытом.
🚀 Как всё начиналось
Изначально я начал пробовать Claude просто из любопытства. Честно говоря, первые попытки были полным провалом.
Знаете эту проблему с большими нейронками? Попросишь его приготовить макароны, а он начинает с того, как вырастить пшеницу 😅
Серьёзно — дикий over-engineering на ровном месте. Простые вещи усложнялись до невозможности, а результат чаще всего тупо не получался.
💰 Вопрос подписки
Быстро понял, что плана за $20 не хватает. Типа немного работать над чем-то небольшим - ок, но это не мой путь)
Перешёл на Claude Pro за $100 — лимиты в 5 раз больше. Вот это уже нормально!
Когда заканчивается лимит? Обычно где-то к концу рабочего дня, часов в 18-19 или 23, если весь день активно пользовался. Обычно обновления ждешь час-два. Что хорошо для перерыва.
⚡ Что я делаю с Claude
Рабочие задачи:
Пишу небольшие функции и скрипты (до 200 строк)
Переписываю код на другие фреймворки
Добавляю функциональность v2 к существующим проектам
Создаю презентации (получается вполне достойно)
Исследования и анализ данных
Личные проекты:
* Различные эксперименты с кодом
* Обучающие материалы
🎯 Что работает хорошо
* Структурирование информации
* Создание технической документации
Сейчас у меня ~2-3 балла по эффективности из 5 возможных.
❌ Ограничения
Чего Claude НЕ умеет:
* Рисовать (если нужны иллюстрации — ищите другие решения)
* Работать с визуальным контентом на продвинутом уровне
* Работать с аудио
Иногда он всё ещё слишком позитивный и "правильный" в общении — как будто общается с детьми.
🤔 Стоит ли оно того?
Честно? Чисто функционально Claude не стоит $100 в месяц.
Но я продлил подписку.
Почему? Потому что мне просто весело с ним работать! Это как прикольная игрушка, которая ещё и пользу приносит.
Я всё ещё прокачиваю свои навыки работы с ним. С каждым разом становлюсь чуть более эффективным в формулировке запросов и получении нужных результатов.
В одном из следующих постов расскажу подробнее про конкретные кейсы.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🔥 Большое обновление в pandas: Expressions
Pandas исполняется уже 17 лет, и наконец-то в версии 3.0 появляется то, чего ждали многие — выражения (expressions) через
Раньше:
Теперь:
Почему это реально круто:
— Больше никаких непонятных
— Код читается и дебажится проще:
✅ Поддержка
✅ Это первый шаг к полноценной системе выражений в духе Polars.
Пример:
✅ Чище, безопаснее и интуитивнее.
✅ Pandas берёт лучшее у новых библиотек (Polars, Narwhals) и возвращает нас к удобному и современному синтаксису.
🔗 Подробная статья по теме
🐸 Библиотека дата-сайентиста
#свежак
Pandas исполняется уже 17 лет, и наконец-то в версии 3.0 появляется то, чего ждали многие — выражения (expressions) через
pd.col.Раньше:
df = df.assign(temp_f = lambda x: x['temp_c'] * 9 / 5 + 32)
Теперь:
df = df.assign(temp_f = pd.col('temp_c') * 9 / 5 + 32)Почему это реально круто:
— Больше никаких непонятных
lambda, которые ломаются в циклах.— Код читается и дебажится проще:
pd.col('a') + 10 # => (col('a') + 10)
str, dt, NumPy ufunc и фильтрации прямо в loc.Пример:
df.assign(
city_upper = pd.col('city').str.upper(),
log_temp_c = np.log(pd.col('temp_c'))
)
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
#python
Ещё немного снипитов кода упертых из книги Дэна Байдера.
Я не знал, что при возвращение внутренней функции, она запоминает состояние внешней. Теперь знаю, даже представил себе, как это работает.
Вот пара примеров:
Здесь запоминается текст, переданный при получении внутренней функции.
Вот еще наглядный пример:
Практическое применение - создание фабрики функций. По сути внешняя конфигурирует внутреннюю. Возможность интересная и, вероятно, в определенных обстоятельствах полезная. Я же обычно предпочитаю делать объекты-калькуляторы. У которых состояние конфигурируется через внутренние атрибуты и есть метод расчёта
Ещё немного снипитов кода упертых из книги Дэна Байдера.
Я не знал, что при возвращение внутренней функции, она запоминает состояние внешней. Теперь знаю, даже представил себе, как это работает.
Вот пара примеров:
def get_speak_func(text, volume):
def whisper():
return text.lower() + '...'
def yell():
return text.upper() + '!'
if volume > 0.5:
return yell
else:
return whisper
>>> get_speak_func('Привет, Мир', 0.7)()
'ПРИВЕТ, МИР!'
Здесь запоминается текст, переданный при получении внутренней функции.
Вот еще наглядный пример:
def make_adder(n):
def add(x):
return x + n
return add
>>> plus_3 = make_adder(3)
>>> plus_5 = make_adder(5)
>>> plus_3(4)
7
>>> plus_5(4)
9
Практическое применение - создание фабрики функций. По сути внешняя конфигурирует внутреннюю. Возможность интересная и, вероятно, в определенных обстоятельствах полезная. Я же обычно предпочитаю делать объекты-калькуляторы. У которых состояние конфигурируется через внутренние атрибуты и есть метод расчёта
calc(self, *args). Мне кажется такой подход более явным , а Явное лучше, чем неявное.
👍2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Полезная шпаргалка: как выбрать правильное распределение для данных
1️⃣ Начните с гистограммы
— Простая, но мощная визуализация.
— Помогает понять форму данных: колоколообразная (Normal), быстро падающая (Exponential), ровная (Uniform), с несколькими пиками (Mixture).
2️⃣ Протестируйте разные распределения
— Используем библиотеку distfit для подбора распределений.
— Проверяет ~90 типов распределений автоматически:
3️⃣ Визуализируйте подгонку
— Всегда проверяй глазами!
— Используй PDF (распределение) и CDF (кумулятивное распределение):
4️⃣ Не забывайте про нестандартные данные
— Дискретные счётные данные → binomial, Poisson.
— Сложные или многопиковые данные → non-parametric (quantile, percentile).
Пример:
5️⃣ Проверяйте стабильность
— Бутстрэпинг помогает проверить, насколько выбранное распределение устойчиво к случайным выборкам:
🐸 Библиотека дата-сайентиста
#свежак
— Простая, но мощная визуализация.
— Помогает понять форму данных: колоколообразная (Normal), быстро падающая (Exponential), ровная (Uniform), с несколькими пиками (Mixture).
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(50, 15, 1000)
plt.hist(data, bins=30, color='skyblue', edgecolor='black', alpha=0.7)
plt.xlabel('Values'); plt.ylabel('Count'); plt.title('Гистограмма данных')
plt.show()
— Используем библиотеку distfit для подбора распределений.
— Проверяет ~90 типов распределений автоматически:
from distfit import distfit
import numpy as np
my_data = np.random.normal(25, 8, 2000)
fitter = distfit(method='parametric')
fitter.fit_transform(my_data)
print("Лучшее распределение:", fitter.model['name'])
print("Параметры:", fitter.model['params'])
— Всегда проверяй глазами!
— Используй PDF (распределение) и CDF (кумулятивное распределение):
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15,6))
fitter.plot(chart='PDF', ax=ax1); ax1.set_title('PDF')
fitter.plot(chart='CDF', ax=ax2); ax2.set_title('CDF')
plt.show()
— Дискретные счётные данные → binomial, Poisson.
— Сложные или многопиковые данные → non-parametric (quantile, percentile).
Пример:
from scipy.stats import binom
count_data = binom(20, 0.3).rvs(1000)
discrete_fitter = distfit(method='discrete')
discrete_fitter.fit_transform(count_data)
discrete_fitter.plot()
— Бутстрэпинг помогает проверить, насколько выбранное распределение устойчиво к случайным выборкам:
fitter.bootstrap(my_data, n_boots=100)
print(fitter.summary[['name','score','bootstrap_score','bootstrap_pass']])
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
#LLM
🤖 Как я использую Claude
Как и обещал, рассказываю про конкретное использование Claude на реальных проектах.
🚫 Первая ошибка: "Один чат — один проект"
Сначала я пытался делать весь проект в одном чате. И это была фундаментальная ошибка.
Проблема в том, что у Claude есть ограничение на длинну контекста.когда он в неё упирается, больше в чат ничего написать нельзя.
Вторая проблема - все в одном месте, и если что-то идёт не в заданной промптом последовательности, Claude может начать тупить.
💡 Решение: Разделение на специализированных агентов
Понял, что нужно постепенно разбивать части проектов на разные составляющие.
🎯 Мои специализированные "агенты":
📋 Постановщик задач
- Обсуждаем задачу
- Формируем полное описание того, что нужно делать
🗓️ Планировщик
Можно было бы его назвать архитектором, но слишком много чести, да и задача его скорее сформулировать архитектуру, чем написать её.
- Описываем намеченный техстэк
- Описываем намеченную архитектуру
- Планируем этапы разработки с подробным описанием, что нужно сделать
📝 Кодер
Пишет код по заданному планировщиком плану шаг за шагом. Я требую от него документировать со схемами каждый шаг и писать демо скрипты для демонстрации работы.
🧪 Тестер
Пишет тесты и помогает с дебагом
📚 Документатор
- Создает пользовательские и разработческие доки
- Оформляет схемы и диаграммы
- Описывает, что как и почему
🚀 Деплойщик
- Контейнеризация
- Подготовка к развертыванию
⚡ Как это работает на практике
Важные принципы:
✅ Каждый агент = отдельный проект со своим системным промптом
✅ Изоляция ответственности — каждый делает своё дело
✅ Последовательность выполнения — один за другим, без пересечений
🔄 Что с переписыванием?
Да, всё равно приходится переписывать. Но это гораздо проще, когда:
- У каждого агента есть конкретная функция
- Контекст не засоряется лишней информацией
- Можно быстро вникнуть в то, что написано
🤖 Как я использую Claude
Как и обещал, рассказываю про конкретное использование Claude на реальных проектах.
🚫 Первая ошибка: "Один чат — один проект"
Сначала я пытался делать весь проект в одном чате. И это была фундаментальная ошибка.
Проблема в том, что у Claude есть ограничение на длинну контекста.когда он в неё упирается, больше в чат ничего написать нельзя.
Вторая проблема - все в одном месте, и если что-то идёт не в заданной промптом последовательности, Claude может начать тупить.
💡 Решение: Разделение на специализированных агентов
Понял, что нужно постепенно разбивать части проектов на разные составляющие.
🎯 Мои специализированные "агенты":
📋 Постановщик задач
- Обсуждаем задачу
- Формируем полное описание того, что нужно делать
🗓️ Планировщик
Можно было бы его назвать архитектором, но слишком много чести, да и задача его скорее сформулировать архитектуру, чем написать её.
- Описываем намеченный техстэк
- Описываем намеченную архитектуру
- Планируем этапы разработки с подробным описанием, что нужно сделать
📝 Кодер
Пишет код по заданному планировщиком плану шаг за шагом. Я требую от него документировать со схемами каждый шаг и писать демо скрипты для демонстрации работы.
🧪 Тестер
Пишет тесты и помогает с дебагом
📚 Документатор
- Создает пользовательские и разработческие доки
- Оформляет схемы и диаграммы
- Описывает, что как и почему
🚀 Деплойщик
- Контейнеризация
- Подготовка к развертыванию
⚡ Как это работает на практике
Важные принципы:
✅ Каждый агент = отдельный проект со своим системным промптом
✅ Изоляция ответственности — каждый делает своё дело
✅ Последовательность выполнения — один за другим, без пересечений
🔄 Что с переписыванием?
Да, всё равно приходится переписывать. Но это гораздо проще, когда:
- У каждого агента есть конкретная функция
- Контекст не засоряется лишней информацией
- Можно быстро вникнуть в то, что написано
👍2