Обновить
767.62

Python *

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

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

8 трюков в Python, используемых опытными программистами

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

Вот восемь изящных приемов Python, которые, я уверен, вы еще не видели. Примените эти приемы в своем коде на Python, чтобы сделать его более лаконичным и производительным!

1. Сортировка объектов по нескольким ключам


Предположим, мы хотим отсортировать следующий список словарей:

people = [
{ 'name': 'John', "age": 64 },
{ 'name': 'Janet', "age": 34 },
{ 'name': 'Ed', "age": 24 },
{ 'name': 'Sara', "age": 64 },
{ 'name': 'John', "age": 32 },
{ 'name': 'Jane', "age": 34 },
{ 'name': 'John', "age": 99 },
]

Но мы не просто хотим сортировать их по имени или возрасту, мы хотим отсортировать их по обоим полям. В SQL это будет такой запрос:

SELECT * FROM people ORDER by name, age

На самом деле существует очень простое решение этой проблемы, благодаря гарантии Python, что функции сортировки обеспечивают устойчивость сортировки. Это означает, что элементы, которые сравниваются, сохраняют свой первоначальный порядок.
Читать дальше →

Ресурсы для получения датасетов изображений, о которых вы могли не знать

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

Привет, Хабр! Как известно, топливом для машинного обучения являются наборы данных. В качестве источников для получения датасетов, которыми люди обычно пользуются и которые у всех на слуху, являются такие сайты как Kaggle, ImageNet, Google Dataset Search и Visual Genom, но довольно редко встречаю людей, которые для поиска данных используют такие сайты как Bing Image Search и Instagram. Поэтому в этой статье я покажу как легко получить данные с этих источников, написав две небольшие программы на Python.

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

Взлёты и падения строительной отрасли Сан-Франциско. Тенденции и история развития строительной активности

Время на прочтение13 мин
Охват и читатели2.7K
Это серия статей посвящена исследованию строительной активности главного города Кремниевой Долины — Сан-Франциско. Сан-Франциско — технологическая «Москва» нашего мира, на примере которого (при помощи открытых данных) можно наблюдать за развитием строительной отрасли в больших городах и столицах.

Построение графиков и расчётов проводилось в Jupyter Notebook (на платформе Kaggle.com).

Данные о более чем миллионе разрешений на строительство (записей в двух датасетах) от департамента по строительству Сан-Франциско — позволяют проанализировать не только строительную активность в городе, но и критически рассмотреть последнии тенденции и историю развития строительной отрасли за последние 40 лет, в период с 1980 по 2019 год.

Открытые данные дают возможность исследовать основные факторы, которые влияли и будут влиять на развитие строительной отрасли в городе, разделив их на “внешние” (экономические бумы и кризисы) и “внутренние” (влияние праздников и сезонно-годовых циклов).
Читать дальше →

Подключение к session в Java и Python. HttpURLConnection и CookieManager (Java). Requests(Python)

Время на прочтение4 мин
Охват и читатели14K
Допустим, что нам надо подключиться к серверу, авторизоваться и поддерживать сессию. В браузере это выглядит следующим образом:

  1. На адрес http://localhost:8080/login отправляется пустой GET запрос.
  2. Сервер присылает формочку для заполнения логина и пароля, а также присылает Cookie вида «JSESSIONID=094BC0A489335CF8EE58C8E7846FE49B».
  3. Заполнив логин и пароль, на сервер отправляется POST запрос с полученной ранее Cookie, со строкой в выходном потоке «username=Fox&password=123». В Headers дополнительно указывается «Content-Type: application/x-www-form-urlencoded».
  4. В ответ сервер нам присылает новую cookie c новым «JSESSIONID=». Сразу же происходит переадресация на http://localhost:8080/ путём GET запроса с новой Cookie.
  5. Далее можно спокойно использовать остальное API сервера, передавая последнее Cookie в каждом запросе.

Рассмотрим, как это можно реализовать на Java и на Python.


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

Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2

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

Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эталонной (питоновской) версию декораторов.


Я же расскажу про то, как решил попытаться реализовать декораторы в компилируемом языке программирования, для чего в итоге написал написал собственный небольшой компилятор на Haskell на основе LLVM.


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

Как я получил сертификат TensorFlow-разработчика (и как его получить вам)

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

В начале мая я решил получить сертификат TensorFlow-разработчика. Для этого я разработал программу обучения для совершенствования своих навыков и выполнил задания сертификационного экзамена пару дней назад (3 июня). Оказалось, что я сдал экзамен успешно.

Позвольте мне рассказать вам как я это сделал, и как вам сделать то же самое.

Погодите. Что вообще такое TensorFlow?

TensorFlow — это система численных вычислений с открытым исходным кодом, которая позволяет вам осуществлять предварительную обработку и моделирование данных (находить в них закономерности, как правило, с помощью глубокого обучения), а также разворачивать свои решения для всего мира.

Google использует TensorFlow для поддержки всех своих сервисов машинного обучения. Скорее всего, устройство, на котором вы это читаете, раньше использовало TensorFlow в том или ином виде.

Обычно вы пишете код с использованием TensorFlow на очень понятном Python (именно это требуется для экзамена) или JavaScript (tensorflow.js), и он запускает ряд базовых функций, написанных на C. Эти функции выполняют описанные вами ранее команды (производят множество численных вычислений).

Как найти идеальную работу в IT? Психологический подход. Ч1: Распознать Менеджера Из Ада Анализируя Описание Вакансии

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




После подачи более чем трех сотен заявок на работу на совершенно разные позиции в разные компании в разных странах, я начал замечать явную закономерность в том, как описание вакансии напрямую отражает то, что Вас в действительности поджидает на рабочем месте. Не всегда можно легко и сходу понять что стоит за, и что действительно подразумевают HR, например, под пунктом “стрессоустойчивость” в списке требований к кандидату. В этой статье я хочу поделиться своим опытом по поиску идеальной работы, и теми навыками которые я приобрел после сотни собеседований из тех трех сотен заявок, упомянутых выше. Я хочу показать Вам как нужно анализировать описание вакансий перед трудоустройством, чтобы найти работу которая действительно будет подходить Вам по Вашим критериям “идеальной” работы. Здесь, мы будем рассматривать поиск работы как отдельную науку, с наглядными примерами.

Эта серия статей нацелена как на зеленых выпускников, только получивших диплом, так и на матерых синиоров, сменивших не один коллектив. Она также может быть полезна HR менеджерам как overview их деятельности со стороны для анализа ошибок и работы над ними.
Читать дальше →

Солнечная электростанция на балконе. Личный опыт

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

Эта статья является продолжением экспериментов с солнечными панелями в городской квартире, первые опыты делались три года назад, но затем из-за переезда все пришлось свернуть и распродать. Однако опыт, как известно, не пропьешь, и было решено с учетом полученной практики начать сначала.


Фото (с) smartflower.com

Я покажу все компоненты системы и весь процесс, от настройки и сборки до передачи электроэнергии в электросеть. Также я покажу, как запрограммировать «умную розетку» для сбора статистики сгенерированной электроэнергии.

Для тех, кому интересно, как это работает, продолжение под катом.
Читать дальше →

Получение данных Amplitude через API

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

Введение


Amplitude как инструмент продуктовой аналитики очень хорошо зарекомендовал себя благодаря несложной настройке событий и гибкости визуализаций. И нередко возникает потребность наладить собственную модель атрибуции, провести кластеризацию пользователей или построить дашборд в другой BI-системе. Выполнить подобную махинацию возможно, только имея сырые данные о событиях из Amplitude. О том, как получить эти данные с минимальными знаниями программирования — и будет в этой статье.
Читать дальше →

Как клеить по 13 девушек в час, используя машинное обучение и Tinder

Время на прочтение7 мин
Охват и читатели156K
*Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены.

Наверное, нет столь простого до уровня спинно-мозговых рефлексов приложений, как Tinder. Для того чтобы им пользоваться достаточно одного пальца, чтобы свайпать и немного нейронов, чтобы выбирать девушек или мужчин, которые тебе больше нравятся. Идеальная реализация брутфорса в выборе пары.

Я решил, что это неплохой способ немного пощупать машинное обучение на новой видеокарте. Останется только объяснить жене, что мне не нужна новая женщина потолще, а я просто тренирую нейросети.


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

Python и пиво — взболтать, но не смешивать

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


Привет, Habr! Решил описать небольшую систему автоматизации для создания чудесного напитка. Для того, чтобы пиво было вкусным важны время и температура, температура и время. Причём они настолько же необходимы, как и ингридиенты, составляющие сусло. Чтобы пройти путь до готового продукта требуется от 14 до 20 шагов с различной температурой и временем пивоварения. Для всех заинтересовавшихся этим загадочным процессом, прошу под кат.
Читать дальше →

Я вам графония принес! Как нейросеть может улучшить разрешение в старых играх до HD

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


UPDATE: нашел баг при обучении, исправил, результаты стали существенно лучше, поэтому заменил картинки

Данная статья является вольным переводом моей статьи на Medium.

В детстве я любил играть на компьютере. Совсем маленьким я застал несколько игр на кассетном ZS Spectrum, однако настоящим открытием стали красочные DOS игры 90x годов. Тогда же и зародилось большинство существующих жанров. Немного поностальгировав, я решил вспомнить молодость и запустить одну из старых игр на эмуляторе Dosbox и был неприятно поражен гигантскими пикселями и низким разрешением. Хотя в крупнопиксельной старой графике может быть свое очарование, многих сейчас не устраивает такое качество.

Для повышения разрешения и избавления от угловатости в играх в настоящее время используются различные алгоритмы постпроцессинга и сглаживания (подробно можно почитать, например тут zen.yandex.ru/media/id/5c993c6021b68f00b3fe919c/kak-rabotaet-sglajivanie-v-kompiuternyh-igrah-5c9b3e76d82a083cc9a0f1a7 ), но алгоритмы сглаживания приводят ко всем ненавистной «мыльной» картинке, которая часто еще менее предпочтительна, чем угловатость больших пикселей.

Библиотека ASE для атомных симуляций: создаем наночастицы

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

Библиотека ASE


Библиотека ASE — это python-библиотека для проведения атомных манипуляций и вычислений. В данной статье мы будем создавать наночастицы с помощью этой библиотеки.

Установка


Устанавливается ASE стандартно через pip: pip install ase.
Читать дальше →

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

Microsoft ♥️ Python

Время на прочтение14 мин
Охват и читатели11K
Традиционно считается, что Microsoft хорошо поддерживает языки программирования на платформе .NET: C# или F#. Но это не совсем так — облако Azure поддерживает целый спектр языков, среди которых Python занимает почетное место. А если речь заходит о машинном обучении, то Python здесь любимчик.



Какие сервисы в Microsoft ориентированы на Python, как их использовать и почему Microsoft и Python вместе навсегда, расскажет Дмитрий Сошников (@shwars).

Дмитрий Сошников работает в Microsoft 13 лет, 10 из которых — технологическим евангелистом. В Microsoft Дмитрий защищает пользователей продуктов для разработчиков от разработчиков продуктов в роли Cloud Developer Advocate. Когда возникают проблемы с продуктами компании, ему можно пожаловаться (идеально в виде issue на GitHub). Дмитрий не только посочувствует, но и передаст жалобу разработчикам компании.


Генерируем странные кулинарные рецепты с помощью TensorFlow и рекуррентной нейронной сети (пошаговая инструкция)

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

TL;DR


Я натренировал LSTM (Long short-term memory) рекуррентную нейронную сеть (RNN) на наборе данных, состоящих из ~100k рецептов, используя TensorFlow. В итоге нейронная сеть предложила мне приготовить "Сливочную соду с луком", "Клубничный суп из слоеного теста", "Чай со вкусом цукини" и "Лососевый мусс из говядины" ‍.


Используя следующие ссылки вы сможете генерировать новые рецепты самостоятельно и найти детали тренировки модели:



В этой статье описаны детали тренировки LSTM модели на Python с использованием TensorFlow 2 и Keras API.


Cooking recipes generator demo

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

Интерактивные финансовые данные в 20 строках кода

Время на прочтение9 мин
Охват и читатели14K
Статьи на финансовые темы появляются на Хабре регулярно. Во многих из них в качестве источника первичных данных используется неофициально открытое API Yahoo finance. В этой статье я покажу три способа добыть данные (включая Yahoo) а также как напилить из них простое вэб-приложение в 20 строк и выдать его клиенту, не умеющему в CLI.


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

Рекуррентные нейронные сети — пример генерации музыки

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


Сегодня попробуем создать простую музыку при помощи сетей LSTM.


Целю статьи есть указание возможностей сетей на практике, будет интересно какой результат получится у читателя, сможете оставить ссылки на свой варианты в комментариях.
Минимальные навыки, нужные читателю, чтобы мочь сделать собственный вариант:


  • Python3
  • BASH
  • jupyter-notebook.

Не буду одобрять комментарии, в которых есть суть только:


  • причинить досаду автору, примерно про опечатки(я не являюсь носителем русского языка).
  • несущественные замечания и комментарии.
  • все что не касается сути стати.
Читать дальше →

R Markdown. Как сделать отчет в условиях неопределенности?

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

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


Достаточно часто встречается ситуация, когда размер и содержание отчетной формы будет зависеть от состава переданных на вход данных. Речь идет именно о story-telling отчете, а не о простом выводе таблицы. В этом случае, в зависимости от содержания входных данных, могут появляться или исчезать отдельные пункты, графики, таблицы, текст.


Что будет делать классический Excel-Word аналитик? Под каждый новый запрос делать кастомный отчет и сохранять его в отдельный файл. Но можно заглянуть немного под капот и заставить компьютер делать все самостоятельно.


R Markdown позволяет все это выполнить в элегантной форме. Некоторые технические детали ниже.

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

Python и разработка простого веб-приложения, использующего технологии машинного обучения

Время на прочтение7 мин
Охват и читатели68K
Тот, кто занимается машинным обучением (Machine Learning, ML), обычно, реализуя различные проекты, выполняет следующие действия: сбор данных, их очистка, разведочный анализ данных, разработка модели, публикация модели в локальной сети или в интернете. Вот хорошее видео, в котором можно узнать подробности об этом.


Жизненный цикл проекта в сфере машинного обучения

Этап публикации модели завершает жизненный цикл ML-проектов. Он так же важен для дата-сайентистов и специалистов по машинному обучению, как и другие этапы. Обычные подходы к публикации моделей предусматривают использование универсальных фреймворков, таких, как Django или Flask. Главные проблемы тут заключаются в том, что для применения подобных инструментов требуются особые знания и навыки, и в том, что работа с ними может потребовать немалых затрат времени.

Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как, используя Python-библиотеки streamlit, pandas и scikit-learn, создать простое веб-приложение, в котором применяются технологии машинного обучения. Он говорит, что размер этого приложения не превышает 50 строк. Статья основана на этом видео, которое можно смотреть параллельно с чтением. Инструменты, которые будут здесь рассмотрены, кроме прочего, позволяют ускорить и упростить развёртывание ML-проектов. 
Читать дальше →

YoloV5 для распознавания марок автомобилей

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

Введение


Недавно был опубликован анонс новой YOLOv5, которая идейно дает гораздо лучший процент распознавания на датасете COCO, чем предыдущие версии. Автор решил испробовать новую модель на задаче распознавания марок автомобилей.

Данные


Перво-наперво нам необходимы данные. Датасет был собран вручную, путем фотографирования стоящих на стоянке автомобилей с видимым значком марки (для этого пришлось выйти из дому в 5 утра, дабы не пугать удивленных прохожих). Разметка данных производилась с помощью инструмента labelImg. Всего было размечено 118 фотографий автомобилей следующих марок: Lada, Kia, Nissan, Volkswagen, Chevrolet, Ford, Mitsubishi, Renault, Hyundai, Opel. Довольно оптимистичная цель — пытаться обучить нейросеть на таком небольшом наборе данных, — однако, только практика покажет!
Читать дальше →

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