Добрый день, Хабр! Хочу поделиться учебником-справочником знаний, которые мне удалось собрать по RabbitMQ
и сжать в короткие рекомендации и выводы.
User
Как работать с датами в pandas
Библиотека Pandas — это весьма эффективный инструмент для обработки данных, представляющих собой временные ряды. На самом деле, эта библиотека была создана Уэсом МакКинни для работы с финансовыми данными, которые состоят, главным образом, из временных рядов.
При работе с временными рядами много сил уходит на выполнение различных операций с датой и временем. Этот материал посвящён ответам на четыре распространённых вопроса из данной сферы.
Возможно, вы уже сталкивались с этими вопросами. Ответить на все из них, кроме последнего, можно сравнительно просто. А вот ответ на последний, довольно-таки хитрый вопрос, представляет собой последовательность из нескольких действий.
Начнём с создания учебного датафрейма (объекта DataFrame
), с которым будем экспериментировать:
Как организовать код в Python-проекте, чтобы потом не пожалеть
Каждая минута, потраченная на организацию своей деятельности, экономит вам целый час.
Бенджамин Франклин
Python отличается от таких языков программирования, как C# или Java, заставляющих программиста давать классам имена, соответствующие именам файлов, в которых находится код этих классов.
Python — это самый гибкий язык программирования из тех, с которыми мне приходилось сталкиваться. А когда имеешь дело с чем-то «слишком гибким» — возрастает вероятность принятия неправильных решений.
Устаревшие Python-библиотеки, с которыми пора попрощаться
В Python, с каждым релизом, добавляют новые модули, появляются новые и улучшенные способы решения различных задач. Все мы привыкли пользоваться старыми добрыми Python-библиотеками, привыкли к определённым способам работы. Но пришло время обновиться, время воспользоваться новыми и улучшенными модулями и их возможностями.
Бескомпромиссный CI-конвейер для питонистов
Любому Python-проекту может пойти на пользу надёжный и стабильный конвейер непрерывной интеграции (Continuous Integration, CI). В рамках таких конвейеров выполняется сборка приложений, запуск тестов, проверка кода линтерами, контроль качества программ, анализ уязвимости приложений. Правда, построение CI-конвейеров занимает много времени, требует выполнения действий, которые, сами по себе, никакой пользы не приносят. Этот материал написан для тех Python-программистов, которым нужен полнофункциональный, настраиваемый CI-конвейер, основанный на GitHub Actions. Этот конвейер оснащён всеми мыслимыми инструментами, подключён ко всем необходимым сервисам, а подготовить его к работе можно всего за несколько минут.
Способ атаковать любой чат в Telegram-мессенджере, или как на меня напали хакеры
Помните, недавно вышла серия постов про прививки от коронавируса?
Я член команды админов из той системы чатов v1v2 по вакцинации и лично моя зона ответственности – «ЭпиВакКорона», вакцина ГНЦ «Вектор» Роспотребнадзора.
Если коротко, то в процессе независимой проверки вакцин мы выяснили, что Спутник-V отлично работает и побочки приемлемые, а их разработчик центр им. Гамалея говорит правду в СМИ про свою вакцину и её характеристики. Ковивак (им. Чумакова) работает существенно хуже – формирует антитела далеко не у всех и на низком уровне. А вот «ЭпиВакКорона» вовсе не получилась никак – нулевая эффективность, её даже низкой нельзя назвать. Подробнее у нас на сайте. «ЭпиВакКорона» не даёт никакой защиты от коронавируса. Какие-то антитела от неё в 70% появляются в организме человека, но они не способны связываться с коронавирусом.
В нашем чате около 8500 человек, интересующихся нашими исследованиями и данным препаратам. И вот вчера на нас напала неизвестная группа лиц весьма своеобразным способом. Проведя небольшое исследование и ряд экспериментов удалось вычислить схему действия. В нашем чате под видом обычного пользователя сидит бот, подключённый к чату через их API. Он следит за сообщениями и как кто-то пишет новое, смотрит id пользователя. Это внутренний номер в Telegram, который не равен вашему нику или номеру телефона. Id не меняется, если вы меняете ник или номер телефона.
Далее по данному id пробивается по базам данных, собранных по публичным источникам. Доступ к ним есть через ботов в Telegram, например @Quick_OSINT или «Глаз бога».
Разработка чрезвычайно быстрых программ на Python
Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Приготовься к введению в России социального рейтинга
Уже сегодня банки формируют свои предложения исходя из данных собранных их приложениями на смартфонах клиентов. В частности ставка по кредиту, которую вам предложат, сильно зависит от файлов, размещенных на вашем устройстве, и сайтов, которые вы посещали. Именно поэтому банки так настойчиво предлагают их установить (даже отказывая в обслуживании, сославшись на возможность выполнения необходимых действий самостоятельно). Для этого банковские клиенты требуют максимальных прав на устройстве. Например, Сбербанк Онлайн утверждает, что ему необходим доступ к файловой системе для… поиска вирусов на устройстве.
Вам может показаться, что получение низкой ставки по кредиту за социально полезные действия- перспектива далекого будущего. Но уже сегодня ставка ипотеки для молодой семьи находится в районе 10%, тогда как остальные предложения близки к 20%. Т.е. это уже давно реальность, просто вы не придавали этому значения.
Я считаю, что ряд непопулярных решений будет принят в течении последнего президентского срока Владимира Путина: этому человеку больше не надо «сохранять лицо». Поэтому до 2024 года мы увидим новый виток «закручивания гаек», в том числе введение социального рейтинга в России.
«Анализ данных на Python» в двух частях
Лекции предназначены для двух категорий слушателей. Первая — начинающие аналитики, которым сложно начинать с изучения, например, книги The Elements of Statistical Learning. Курс подготовит их к дальнейшей работе. Вторая — опытные аналитики, не получившие систематического образования в области анализа данных. Они могут заполнить пробелы в знаниях. С прошлого года на занятиях используется язык программирования Python.
Чтобы понимать материал, достаточно когда-то прослушанных курсов математического анализа, линейной алгебры и теории вероятностей и базовых знаний языка Python.
Приятного просмотра!
10 фич для ускорения анализа данных в Python
Советы и рекомендации, особенно в программировании, могут быть очень полезны. Маленький шоткат, аддон или хак может сэкономить кучу времени и серьёзно увеличить производительность. Я собрала свои самые любимые и сделала из них эту статью. Какие-то из советов ниже уже известны многим, а какие-то появились совсем недавно. Так или иначе, я уверена, они точно не будут лишними, когда вы в очередной раз приступите к проекту по анализу данных.
1. Профилирование Pandas Dataframe
Профилирование помогает лучше понять наши данные, и пакет Pandas Profiling создан как раз для этого. Библиотека даст возможность просто и быстро выполнить разведочный анализ Pandas Dataframe. Обычно в таких случаях в качестве первого шага используются функции df.describe() и df.info(), но они сообщают мало и плохо справляются с большими наборами данных. Одна строка кода с использованием Pandas Profiling, напротив, выведет много информации в интерактивном HTML-отчете.
Вот что вычисляется для заданного набора данных:
Статистика выводимая Pandas Profiling.
Установка
pip install pandas-profiling
или
conda install -c anaconda pandas-profiling
Использование
Давайте используем набор данных о пассажирах Титаника, чтобы продемонстрировать возможности профайлера.
Как работает yield
Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?
Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild
Вызывается он так:
result, candidates = list(), [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance >= min_dist: result.extend(node._values) candidates.extend(node._get_child_candidates(distance, min_dist, max_dist)) return result
Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?
** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/
Что нужно запомнить программисту, переходящему на Python
Когда-то давно, в студенческие годы, меня укусил питон, правда инкубационный период затянулся и получилось так, что я стал программистом на перле.
Однако в какой-то момент перл исчерпал себя и я решил заняться питоном, сначала просто делал что-то и разбирался с тем, что нужно для данной задачи, а потом понял, что нужны какие-то систематизированные знания и прочитал несколько книг:
- Билл Любанович «Простой Python. Современный стиль программирования»
- Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
- Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»
Которые мне показались вполне подходящими для понимания основных тонкостей языка, хотя не помню, чтобы в них упоминалось про slots, но и не уверен, что это реально нужная фича — если уже по памяти прижало, то скорее всего одного этого способа будет недостаточно, но конечно это всё зависит от ситуации.
В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.
Simple Solder MK936 SMD. Паяльная станция на SMD-компонентах своими руками
Представляет она собой паяльник с блоком установки и регулировки температуры. В статье вы найдете схемы, чертежи плат, прошивку для микроконтроллера, а также рекомендации по сборке и настройке.
Собрав ее, вы получите опыт работы с компонентами поверхностного монтажа (SMD) и, конечно, полезное устройство.
Краудтестинг, или Где взять опыт для первой работы в тестировании
Изображение: источник
Привет, Хабр! Меня зовут Евгений Кузнецов. Я работаю в Badoo, в отделе QA.
Почти пять лет назад я начал интересоваться тестированием: читал книги, искал информацию в интернете. На одном из форумов наткнулся на тему про подработку, где один из участников оставил ссылку на сайт uTest.com. И это была действительно удачная находка, поскольку uTest оказался крупнейшей платформой для тестировщиков с кучей полезной информации и сотнями оплачиваемых краудсорсинговых проектов.
Я думаю, многие здесь уже слышали об этом сайте или о подобных площадках. Но, как ни странно, часто я вижу удивлённые лица, когда начинаю рассказывать про краудтестирование. Так что цель этой статьи — пустить полезную информацию в массы.
Рассказ «6 часов до запуска БАКа»
Нет? Тогда предлагаю Вашему вниманию мой небольшой фантастический рассказ. Чуть-чуть опоздал с публикацией, поэтому перед прочтением, представьте, что Вы в прошлом, и осталось как раз шесть часов до запуска БАКа.
Короткий НФ рассказ «Ошибка в программе»
Колония. Главы 20 и 21
Глава 20: По колено в грязи
Темнело. Сверчки за бортом ровера пели все громче, и график шума на одном из мониторов послушно увеличивал амплитуду колебаний с каждой минутой.
Питер погиб около получаса назад, и все это время в салоне ровера[] царила полная тишина. Поначалу она нарушалась редкими тревожными сигналами радара, которые, однако, становились все чаще, и вскоре Джо пришлось отключить звук. Кровь приманивала хищников, и они попросту не пропадали из радиуса обнаружения.
Скотт смотрел прямо перед собой, но не замечал ничего вокруг – в его сознании снова и снова воспроизводился момент смерти Питера. Нет, смерть вовсе не была страшной, потому что была моментальной – страшным был его взгляд в этот момент. Взгляд, выражающий безумие и триумф одновременно.
Неожиданная встреча. Глава 1
Электровелосипед — доступность и эффективность на личном примере
Про то, как я дошёл до электротранспорта и какой ценой — под катом.
Стратегии по ускорению кода на R, часть 1
Эта статья описывает несколько подходов, в том числе простые изменения в логике, параллельную обработку и
Rcpp
, увеличивая скорость на несколько порядков, так что можно будет нормально обрабатывать 100 миллионов строк данных или даже больше. Давайте попробуем ускорить код с циклом for и условным оператором (if-else) для создания колонки, которая добавляется к набору данных (data frame, df). Код ниже создает этот начальный набор данных.
# Создание набора данных
col1 <- runif (12^5, 0, 2)
col2 <- rnorm (12^5, 0, 2)
col3 <- rpois (12^5, 3)
col4 <- rchisq (12^5, 2)
df <- data.frame (col1, col2, col3, col4)
В этой части: векторизация, только истинные условия, ifelse.
В следующей части: which, apply, побайтовая компиляция, Rcpp, data.table.
Information
- Rating
- Does not participate
- Registered
- Activity