Обновить
566.36

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Как правильно и легко рассчитать прибыль на инвестиции или калькулятор ROI на Python

Время на прочтение6 мин
Охват и читатели9K

Пусть у вас есть вложения активов в некую стратегию (даже если buy and hold), и вы хотите рассчитать return on investment (ROI). Если вы не производили никаких выводов или депозитов, тогда всё просто - используем школьную формулу.

Однако если в период инвестиций вы делали выводы или депозиты по счету, то нужно их учитывать, и тогда простой формулы здесь недостаточно...

Читать далее...

Как совместить парадигму Объектно-ориентированного программирования и Python в голове новичка?

Время на прочтение2 мин
Охват и читатели10K

Данная работа пригодится новичкам для осмысления Python и парадигмы объектно-ориентированного программирования, что называется в бою.

Читать далее

Умная нормализация данных: категориальные и порядковые данные, “парные” признаки

Время на прочтение4 мин
Охват и читатели15K

Эта статья внеплановая. В прошлый раз я рассматривал нюансы и проблемы различных методов нормализации данных. И только после публикации понял, что не упомянул некоторые важные детали. Кому-то они покажутся очевидными, но, по-моему, лучше сказать об этом явно.

Читать дальше →

Python API в Delta Lake — простые и надежные операции Upsert и Delete

Время на прочтение11 мин
Охват и читатели3.1K

Delta Lake 0.4.0 включает Python API и преобразование Parquet в таблицу Delta Lake на месте

Мы рады объявить о релизе Delta Lake 0.4.0, в котором представлен Python API, улучшающий манипулирование и управление данными в Delta-таблицах. Ключевыми фичами этого релиза являются:

- Python API для DML и служебных операций (#89) - теперь вы можете использовать Python API для обновления(update)/удаления(delete)/слияния(merge) данных и выполнения служебных операций (а именно, vacuum и history) в таблицах Delta Lake. Они отлично подходят для создания сложных рабочих нагрузок в Python, например, операций медленно меняющихся измерений (SCD - Slowly Changing Dimension), слияния изменений данных для репликации и операций upsert из потоковых запросов. Для получения более подробной информации читайте документацию.

- Convert-to-Delta (#78) - теперь вы можете преобразовать таблицу Parquet в таблицу Delta Lake на месте без перезаписи каких-либо данных. Эта функция отлично подходит для преобразования очень больших таблиц Parquet, которые было бы довольно затратно перезаписывать в Delta-таблицу. Более того, этот процесс обратим - вы можете преобразовать таблицу Parquet в таблицу Delta Lake, поработать с ней (например, удалить или объединить) и легко преобразовать ее обратно в таблицу Parquet. Для получения более подробной информации читайте документацию.

- SQL для служебных операций - теперь вы можете использовать SQL для выполнения служебных операций vacuum и history. Смотрите документацию для получения дополнительных сведений о том, как настроить Spark для выполнения этих специфичных для Delta Lake команд SQL.

Больше информации вы можете найти в примечаниях к релизу Delta Lake 0.4.0 и в документации по Delta Lake > Удаление, обновление и слияние таблиц.

Читать далее

Быстрый градиентный бустинг с CatBoost

Время на прочтение5 мин
Охват и читатели100K
Привет, хабровчане! Подготовили перевод статьи для будущих учеников базового курса Machine Learning.





В градиентном бустинге прогнозы делаются на основе ансамбля слабых обучающих алгоритмов. В отличие от случайного леса, который создает дерево решений для каждой выборки, в градиентном бустинге деревья создаются последовательно. Предыдущие деревья в модели не изменяются. Результаты предыдущего дерева используются для улучшения последующего. В этой статье мы подробнее познакомимся с библиотекой градиентного бустинга под названием CatBoost.


Источник
Читать дальше →

Архитектура облачного волейбольного сервиса

Время на прочтение4 мин
Охват и читатели2.1K
Не так давно я писал про волейбольный сервис, теперь пришло время описать его с технической точки зрения.

Возможно, общественное сознание найдет изъяны в архитектуре и подтолкнет к лучшим решениям.

Краткое описание функциональности:

  • пользователь загружает видео с записью волейбольной игры
  • один хитрый алгоритм распознает мяч на кадрах
  • другой хитрый алгоритм выделяет розыгрыши
  • розыгрыши компонуются в отдельные видеофайлы
  • файлы с розыгрышами собираются в дайджест всей игры
  • все видео заливается в облако
  • пользователи смотрят/качают/шарят клипы с самыми классными розыгрышами
Читать дальше →

Метаклассы в Python

Время на прочтение4 мин
Охват и читатели23K

Метаклассы – это такие классы, экземпляры которых сами являются классами. Подобно тому, как «обычный» класс определяет поведение экземпляров класса, метакласс определяет и поведение классов, и поведение их экземпляров.

Метаклассы поддерживаются не всеми объектно-ориентированными языками программирования. Те языки программирования, которые их поддерживают, значительно отличаются по способу их реализации. Но в Python метаклассы есть.

Некоторые программисты рассматривают метаклассы в Python как «решения, которые ждут или ищут задачу».

У метаклассов множество применений. Выделим несколько из них:

Читать далее

Умная нормализация данных

Время на прочтение8 мин
Охват и читатели157K

Эта статья появилась по нескольким причинам.


Во-первых, в подавляющем большинстве книг, интернет-ресурсов и уроков по Data Science нюансы, изъяны разных типов нормализации данных и их причины либо не рассматриваются вообще, либо упоминаются лишь мельком и без раскрытия сути.


Во-вторых, имеет место «слепое» использование, например, стандартизации для наборов с большим количеством признаков — “чтобы для всех одинаково”. Особенно у новичков (сам был таким же). На первый взгляд ничего страшного. Но при детальном рассмотрении может выясниться, что какие-то признаки были неосознанно поставлены в привилегированное положение и стали влиять на результат значительно сильнее, чем должны.


И, в-третьих, мне всегда хотелось получить универсальный метод учитывающий проблемные места.


Читать дальше →

Дополнительные компоненты для кроссплатформеннной библиотеки материального дизайна KivyMD

Время на прочтение9 мин
Охват и читатели6.3K

Приветствую, уважаемые любители и знатоки Python!

Если вы используете в своих приложениях Python и такие кроссплатформенные инструменты как фреймворк Kivy и библиотеку материального дизайна KivyMD, тогда вам точно будет интересно эта статья, в которой я расскажу о дополнительных компонентах для расширения набора материальных виджетов библиотеки KivyMD

Как разобраться в дереве принятия решений и сделать его на Python

Время на прочтение5 мин
Охват и читатели37K
Совсем скоро, 20 ноября, у нас стартует новый поток «Математика и Machine Learning для Data Science», и в преддверии этого мы делимся с вами полезным переводом с подробным, иллюстрированным объяснением дерева решений, разъяснением энтропии дерева решений с формулами и простыми примерами, вводом понятия «информационный выигрыш», которое игнорируется большинством умозрительно-простых туториалов. Статья рассчитана на любящих математику новичков, которые хотят больше разобраться в работе дерева принятия решений. Для полной ясности взят совсем маленький набор данных. В конце статьи — ссылка на код на Github.


Приятного чтения!

Напишем и поймем Decision Tree на Python с нуля! Часть 5. Информационная энтропия

Время на прочтение4 мин
Охват и читатели7.8K
Данная статья — пятая в серии. Ссылки на предыдущие статьи: первая, вторая, третья, четвертая

5.1 Информационная энтропия (Средний объем информации)


При создании дерева решений из данных алгоритм ID3 использует индекс, называемый информационной энтропией, чтобы определить, какой атрибут следует использовать для ветвления с наиболее эффективным распределением данных.

В начале, определимся с понятием объем информации. Интуитивно понятно, что объем данных = сложность, запутанность данных. Дерево решений собирает данные с одинаковыми значениями классов с каждого ветвления, таким образом снижая степень запутанности значений класса. Следовательно, при выборе атрибута, согласно которому лучше всего проводить ветвление, опираться стоит на то, насколько простыми стали данные после разветвления.
Читать дальше →

Машинное обучение на помощь руководителю разработки

Время на прочтение12 мин
Охват и читатели3.8K


Интро


Интерес к теме машинного обучения и искусственного интеллекта неуклонно растет. Ежедневно в новостных сводках мы читаем про победу искусственного интеллекта над человеком. Как правило, описывается решение некоторой сложной задачи (челенджа). От жгучего желания воспроизвести результаты статьи во благо человечества (или своего собственного) в 99% случаев отговаривает отсутствие датасета, деталей реализации алгоритма и мощного железа (порой сотни единиц специализированных устройств для тензорных вычислений).


С другой стороны, есть много статей о решении задач машинного обучения на примере нескольких публичных затертых до дыр датасетов: MNIST, IMDB, ENRON, TITANIC. С ними ситуация обратная — все вершины уже покорены, алгоритмы известны, можно добиться рекордных цифр даже на простеньком ноутбуке. Снова мимо. Гораздо сложнее найти материал о практическим применении МО для решения повседневных задач. Данная статья, как можно догадаться, как раз из этой серии. На подробном практическом примере попробуем выяснить, можно ли собрать личного интеллектуального помощника (пусть и узкоспециализированного), сложно ли это, какие знания нужны и какие проблемы подстерегают на этом пути.

Читать дальше →

Windows: достучаться до железа

Время на прочтение11 мин
Охват и читатели61K

Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено... Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!

Читать далее

Ближайшие события

Формируем тренировочный сэмпл данных при distribution shift

Время на прочтение6 мин
Охват и читатели1.9K
Дисклеймер: статья является переведенным продуктом автора Max’a Halforda. Перевод не чистый, а адаптивный. Такой, чтобы было понимание на любом рубеже знаний.
Читать дальше →

Как принять сигналы немецкого ВМФ с помощью звуковой карты, или изучаем радиосигналы сверхнизких частот

Время на прочтение4 мин
Охват и читатели29K
Привет, Хабр.

Тема приема и анализа сверхдлинных волн весьма интересна, но на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.


Передатчик VLF в Японии (с) en.wikipedia.org/wiki/Very_low_frequency
Читать дальше →

PyCharm исполнилось 10 лет

Время на прочтение2 мин
Охват и читатели5.6K
image

У PyCharm юбилей. На протяжении десяти лет наша IDE развивалась вместе с Python, отражая изменения в языке и отвечая на запросы Python-разработчиков. Все это время мы стремились сделать PyCharm максимально удобной и эффективной IDE.


PyCharm — не просто коммерческий продукт, это результат совместных усилий команды и сообщества. За эти годы пользователи внесли огромный вклад в улучшение PyCharm.


Мы гордимся проделанной работой и в честь праздника подготовили специальную страницу, на которой рассказываем о ключевых моментах из истории PyCharm и приглашаем принять участие в конкурсе.

Читать дальше →

Python. Язык, на котором просто мыслить

Время на прочтение8 мин
Охват и читатели11K
Привет, Хабр!

У нас возможен предзаказ долгожданного второго издания книги "Простой Python". Перевод первого издания вышел в 2016 году и по сей день остается в числе бестселлеров.



Поскольку мы убеждены, что Python — лучший язык программирования для начинающих, а также для работы с data science и машинным обучением, сегодня предлагаем вам перевод несколько мировоззренческого поста с сайта Dropbox, где завершил свою карьеру Гвидо ван Россум — о смысле и незаменимости языка Python.
Читать дальше →

Внедряем оплату BTC куда угодно (Python)

Время на прочтение7 мин
Охват и читатели52K

Внедряем оплату BTC куда угодно (Python)

- генерация кошелька на основе seed фразы

- проверка баланса и транзакций

- отправка BTC на другие кошельки

- создаем телеграм бота для выполнения операций с BTC

- исходники бота (github)

Читать далее

Делаем поиск в веб-приложении с нуля

Время на прочтение26 мин
Охват и читатели23K
В статье «Делаем современное веб-приложение с нуля» я рассказал в общих чертах, как выглядит архитектура современных высоконагруженных веб-приложений, и собрал для демонстрации простейшую реализацию такой архитектуры на стеке из нескольких предельно популярных и простых технологий и фреймворков. Мы построили single page application с server side rendering, поддерживающее просмотр неких «карточек», набранных в Markdown, и навигацию между ними.

В этой статье я затрону чуть более сложную и интересную (как минимум мне, разработчику команды поиска) тему: полнотекстовый поиск. Мы добавим в наш контейнерный рай ноду Elasticsearch, научимся строить индекс и делать поиск по контенту, взяв в качестве тестовых данных описания пяти тысяч фильмов из TMDB 5000 Movie Dataset. Также мы научимся делать поисковые фильтры и копнём совсем немножко в сторону ранжирования.

Читать дальше →

21 канал на YouTube, где вы можете бесплатно изучить ИИ, машинное обучение и Data Science

Время на прочтение5 мин
Охват и читатели30K

Мы уже не раз делились в своем блоге полезными материалами для развития (их список можно найти в конце этого поста). Сегодня продолжаем это начинание и специально перед стартом новых потоков курсов по Data Analytics и Data Science представляем подборку YT-каналов по Data Science, искусственному интеллекту и машинному обучению, существование многих из которых неочевидно: например, представлен канал ArXiv Insights, посвящённый научным работам, и Google Cloud Platform.
Приятного чтения!

Вклад авторов