Отображение графиков прямо в датафрейме pandas
Pandas – это веб-IDE. Всякий раз, когда мы печатаем DataFrame, он отображается с использованием HTML и CSS. Это позволяет нам форматировать его так же, как и любую другую веб-страницу. Одна из самых интересных опций — встроить в датафрейм графики (спарклайны). Рассказываем, как это сделать.
P.S. Весь код с картинок также оставляем для вас в комментариях.
😻 #python
Pandas – это веб-IDE. Всякий раз, когда мы печатаем DataFrame, он отображается с использованием HTML и CSS. Это позволяет нам форматировать его так же, как и любую другую веб-страницу. Одна из самых интересных опций — встроить в датафрейм графики (спарклайны). Рассказываем, как это сделать.
P.S. Весь код с картинок также оставляем для вас в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🤯11🔥6❤4🤩4
Легким движением руки ускоряем код на Python в 100 раз
Интерпретатор Python по умолчанию — это CPython. Но будем честны, он бывает туповат, медлителен и не предлагает встроенной оптимизации. Если хотите ускорить свой код, то вместо этого используйте модуль Cython. Сейчас объясним, как зачем и почему.
😻 #python
Интерпретатор Python по умолчанию — это CPython. Но будем честны, он бывает туповат, медлителен и не предлагает встроенной оптимизации. Если хотите ускорить свой код, то вместо этого используйте модуль Cython. Сейчас объясним, как зачем и почему.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥19❤5
Разрушаем мифы pandas: параметр inplace
Распространенное заблуждение: если менять датафрейм "на месте" (
Дело в том, что, вопреки расхожему мнению, большинство операций на месте НЕ предотвращают создание новой копии. Просто inplace возвращает копию по тому же адресу. Но помимо создания копии в этом случае Pandas выполняет некоторые дополнительные проверки, чтобы "убедиться", что DataFrame изменяется правильно. Иногда это может оказаться дорогостоящей операцией.
Вот и выходит: хотели ускорить код, а в итоге замедлили в 2 раза. Не рекомендуем.
😻 #python
Распространенное заблуждение: если менять датафрейм "на месте" (
inplace = True
), то код будет работать быстрее. Мы провели серию экспериментов и готовы разрушить этот миф. Результаты наверху. Выходит, что изменение на месте чаще всего работает медленнее. Но почему так?Дело в том, что, вопреки расхожему мнению, большинство операций на месте НЕ предотвращают создание новой копии. Просто inplace возвращает копию по тому же адресу. Но помимо создания копии в этом случае Pandas выполняет некоторые дополнительные проверки, чтобы "убедиться", что DataFrame изменяется правильно. Иногда это может оказаться дорогостоящей операцией.
Вот и выходит: хотели ускорить код, а в итоге замедлили в 2 раза. Не рекомендуем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58🤯11👌10😁1
В стране DS жили-были два зверя: панда и скуль. И говорили они на разных языках....
От этого временами страдали все мирные жители этого прекрасного государства. Но однажды доблестные редакторы из замка Data Secrets сделали словарь, в котором собрали и перевели все самое важное с одного языка на другой. После этого все жили долго и счастливо и ставили на этот пост лайки. Конец!
😻 #python #SQL
От этого временами страдали все мирные жители этого прекрасного государства. Но однажды доблестные редакторы из замка Data Secrets сделали словарь, в котором собрали и перевели все самое важное с одного языка на другой. После этого все жили долго и счастливо и ставили на этот пост лайки. Конец!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤103👍36🔥17😁6❤🔥3
Numexpr: многопоточная альтернатива Numpy
NumPy, несомненно, бодр и оптимизирован. Тем не менее, он не поддерживает распараллеливание ни в каком виде. А это огромный простор для улучшений. Поэтому придумали Numexpr. По синтаксису он похож на своего старшего товарища, но предлагает две сильные дополнительные фичи:
– многопоточность
– сокращение выделения памяти на промежуточные результаты
На железе с большим количеством ядер и на больших массивах Numexpr может работать в 20 раз быстрее numpy.
👩💻 Документация
😻 #python
NumPy, несомненно, бодр и оптимизирован. Тем не менее, он не поддерживает распараллеливание ни в каком виде. А это огромный простор для улучшений. Поэтому придумали Numexpr. По синтаксису он похож на своего старшего товарища, но предлагает две сильные дополнительные фичи:
– многопоточность
– сокращение выделения памяти на промежуточные результаты
На железе с большим количеством ядер и на больших массивах Numexpr может работать в 20 раз быстрее numpy.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥18❤2🤔2
Как задеплоить модель с помощью FastAPI
Неотъемлемая часть работы дсника в современной индустрии – это деплой своих проектов. А как это сделать? Вот краткий гайд с готовым кодом и объяснением на пальцах.
😻 #python
Неотъемлемая часть работы дсника в современной индустрии – это деплой своих проектов. А как это сделать? Вот краткий гайд с готовым кодом и объяснением на пальцах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52❤12🔥9
Как визуализировать дерево решений
Ну во-первых, это красиво. Во-вторых, самое прекрасное свойство деревьей решений – интерпретируемость, и визуализировать модель в этом случае очень полезно. Помимо того, что мы видим, как модель будет принимать решение, можно еще и оценить разделимость данных (например, посмотрев на индекс Джини и количество айтемов каждого класса в вершинах).
В комментариях написали готовый код для визуализации на примере Ирисов Фишера.
😻 #analytics #python #train
Ну во-первых, это красиво. Во-вторых, самое прекрасное свойство деревьей решений – интерпретируемость, и визуализировать модель в этом случае очень полезно. Помимо того, что мы видим, как модель будет принимать решение, можно еще и оценить разделимость данных (например, посмотрев на индекс Джини и количество айтемов каждого класса в вершинах).
В комментариях написали готовый код для визуализации на примере Ирисов Фишера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤7
PyTorch 2.0 и новый метод compile()
Для того чтобы ускорить выполнение кода в PyTorch, разработчики PyTorch представили в последней версии новый метод — torch.compile(). В карточках написали про то, как он работает, и когда ускоряет обучение лучше всего. А если хотите углубиться – вот вам подробная статья.
😻 #python
Для того чтобы ускорить выполнение кода в PyTorch, разработчики PyTorch представили в последней версии новый метод — torch.compile(). В карточках написали про то, как он работает, и когда ускоряет обучение лучше всего. А если хотите углубиться – вот вам подробная статья.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤6🔥6
Загадки pandas.stack()
Обычно функции в pandas интуативно понятны в использовании. Но иногда это – головная боль. Например, новички особенно часто путаются в stack(). Подробнее про эту функцию и ее подводные камни – в карточках.
😻 #python
Обычно функции в pandas интуативно понятны в использовании. Но иногда это – головная боль. Например, новички особенно часто путаются в stack(). Подробнее про эту функцию и ее подводные камни – в карточках.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥6❤3
Про разреженные матрицы
Часто при обработке текста или категориальных признаков в итоге мы получаем матрицу, в которой очень-очень много нулей. А задумыались ли вы, как хранятся такие матрицы в памяти? Например, как реализовано хранение таких данных в PyTorch или NumPy? Поехали разбираться.
😻 #python
Часто при обработке текста или категориальных признаков в итоге мы получаем матрицу, в которой очень-очень много нулей. А задумыались ли вы, как хранятся такие матрицы в памяти? Например, как реализовано хранение таких данных в PyTorch или NumPy? Поехали разбираться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31👍5🔥3
Делаем свой код на pandas лучше легким движением руки
Иногда, пользуясь pandas, можно случайно использовать неоптимизированные или устаревшие методы, не заметить нужной фукнции или упустить из виду какие-то особенности данных. Правда, полезно было бы получать подсказки об этом прямо во время кодинга?
Оказывается, для этого существует специальная
P.S. При установке часто возникает ошибка. Игнорируйте ее: все и так будет работать как надо.
😻 #python
Иногда, пользуясь pandas, можно случайно использовать неоптимизированные или устаревшие методы, не заметить нужной фукнции или упустить из виду какие-то особенности данных. Правда, полезно было бы получать подсказки об этом прямо во время кодинга?
Оказывается, для этого существует специальная
библиотека Dovpanda
, которая работает как дополнение к pandas и генерирует подсказки и советы прямо по ходу действия. P.S. При установке часто возникает ошибка. Игнорируйте ее: все и так будет работать как надо.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47❤11😇8🌚2😎1
Что делать с НЕнормальным распределением?
Как известно, моделям (особенно линейным) нравится, когда данные имеют нормальное распределение. Но что делать, если это не так? Рассказываем про два варианта: простой и посложнее.
😻 #train #analytics #python
Как известно, моделям (особенно линейным) нравится, когда данные имеют нормальное распределение. Но что делать, если это не так? Рассказываем про два варианта: простой и посложнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥45🌚8❤6
Почему не следует деплоить модели Sklearn в прод
Sklearn — это идеальная библиотека для всех видов традиционных задач ML. Однако если попробовать развернуть любую модель на основе sklearn в прод, запахнет жаренным. Объясняем, почему, и что с этим можно сделать.
😻 #python
Sklearn — это идеальная библиотека для всех видов традиционных задач ML. Однако если попробовать развернуть любую модель на основе sklearn в прод, запахнет жаренным. Объясняем, почему, и что с этим можно сделать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍44🤨7🔥4❤2
Почему итерации по строкам в pandas такие медленные?
При использовании Pandas всегда рекомендуется избегать итерирования по DataFrame. Иначе это приведет к огромным потерям по времени выполнения. Но почему?
😻 #python
При использовании Pandas всегда рекомендуется избегать итерирования по DataFrame. Иначе это приведет к огромным потерям по времени выполнения. Но почему?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥11❤5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🤯8❤4🔥3
Самый полный репозиторий библиотек Python для Data Science разработчика
Если ты занимаешься Data Science, то знаешь, как важно иметь под рукой нужные инструменты для эффективной работы. Мы тут как раз нашли заметку, в которой перечислены все самые полезные и эффективные библиотеки и модули Python для разных задач. Есть разделы "Очистка и обработка", "Рекомендательные системы", "Временные ряды", "NLP", "Визуализация". Все со ссылками на документацию.
😻 #advice #python
Если ты занимаешься Data Science, то знаешь, как важно иметь под рукой нужные инструменты для эффективной работы. Мы тут как раз нашли заметку, в которой перечислены все самые полезные и эффективные библиотеки и модули Python для разных задач. Есть разделы "Очистка и обработка", "Рекомендательные системы", "Временные ряды", "NLP", "Визуализация". Все со ссылками на документацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥10❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥5❤3👌1😇1
Что такое torch.device()
Часто в коде для обучения нейросетей на торче можно встретить конструкцию, которая использует внутри себя метод device():
Это очень важная штука. При помощи нее мы определяем, где должны храниться тензоры. Тут мы как бы сообщаем, что хотим пользоваться GPU-ускорением, когда оно доступно, но при его отсутствии откатываться обратно к вычислениям на CPU.
Дальше остается только в нужных местах приписывать
P.S. Важно перенести параметры устройства на соответствующее устройство прежде, чем передавать их оптимизатору; иначе оптимизатор не сможет правильно отслеживать параметры!
😻 #python #NN
Часто в коде для обучения нейросетей на торче можно встретить конструкцию, которая использует внутри себя метод device():
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
Это очень важная штука. При помощи нее мы определяем, где должны храниться тензоры. Тут мы как бы сообщаем, что хотим пользоваться GPU-ускорением, когда оно доступно, но при его отсутствии откатываться обратно к вычислениям на CPU.
Дальше остается только в нужных местах приписывать
.to(device)
. Это удобный способ отправлять параметры устройства на GPU, если в качестве device задан GPU, так как иначе (если device == CPU) ничего делаться не будет. P.S. Важно перенести параметры устройства на соответствующее устройство прежде, чем передавать их оптимизатору; иначе оптимизатор не сможет правильно отслеживать параметры!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍12🎃2🕊1
Как "делиться" переменными между jupyter ноутбуками?
При работе с несколькими ноутбуками иногда может понадобиться зашерить некоторые переменные из одного из них в другой. Например, в одном ноутбуке у вас считается какая-нибудь аналитика, которую вы хотите использовать для датавиза в другом месте.
На помощь приходит волшебная команда
😻 #python
При работе с несколькими ноутбуками иногда может понадобиться зашерить некоторые переменные из одного из них в другой. Например, в одном ноутбуке у вас считается какая-нибудь аналитика, которую вы хотите использовать для датавиза в другом месте.
На помощь приходит волшебная команда
store
, которая может перенести переменные из одного ноута в другой, не сохраняя их на диске. Работает так:note1:
value = 10
%store value
note2:
%store -r value
print(value)
#10
Please open Telegram to view this post
VIEW IN TELEGRAM
❤67🤯44👍15🔥5