Обновить
1024K+

Python *

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

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

Решение задач линейного программирования с использованием Python

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

Зачем решать экстремальные задачи


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

К сожалению, не всегда можно положиться на интуицию. Допустим Вы сотрудник коммерческой фирмы и отвечаете за рекламу. Затраты на рекламу в месяц не должны превышать 10 000 денежных единиц (д.е). Минута радиорекламы стоит 5 д.е., а телерекламы 90 д.е. Фирма намерена использовать радиорекламу в три раза чаще чем телерекламу. Практика показывает, что 1 минута телерекламы обеспечивает объём продаж в 30 раз больший чем 1 минута радиорекламы.
Читать дальше →

Набор на курс Python: почему мы думаем, что Python 2.7. — это серьезно, а Python 3 — модно

Время на прочтение4 мин
Охват и читатели9.9K
Пару дней назад мы открыли набор на один из самых долгожданных курсов — курс серьезного изучения Python. Сегодня мы хотели рассказать вам о направленности и программе курса. Курс предназначен для тех, кто уже знает всякое про Python, но хочет повысить свой навык до уровня middle разработчика и найти уже работу, которая будет приносить не только удовольствие, но и хороший доход (ведь лучшим по результатам обучения студентам наши партнеры — крупнейшие IT компании предложат пройти собеседования). Мы не ждем на курсе новичков: поэтому наличие некоего beginner уровня проверяется вступительным тестом — там всего пара десятков вопросов. Если большинство из вопросов теста вызывают длительный ступор — лучше задуматься над тем, чтобы немного подтянуть свои знания по Python самостоятельно, ведь во время курса может не быть возможности останавливаться на basic вещах.
Читать дальше →

Генерируем произвольные последовательности на выводах платы Raspberry Pi

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


Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома.

В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени.

Когда речь заходит о необходимости сгенерировать сложную последовательность импульсов, например, для шаговых двигателей, обычно используют старые добрые простенькие микроконтроллеры с установленной специальной операционной системой реального времени или вообще без операционной системы. Реализация при этом, в лучшем случае, написана на C++. Сейчас процессоры шагнули далеко вперед и имеют массу преимуществ: производительность, возможность использования операционной системы Linux со всей инфраструктурой и ПО, а также высокоуровневых языков программирования, таких как Python. И все же современные микроконтроллеры для генерирования сложных последовательностей на выводах GPIO, как правило, не используют.

Я реализовал генерацию импульсов для управления шаговыми двигателями проекта PyCNC — проекта контроллера машин с ЧПУ, станков, 3D-принтеров, полностью написанного на Python и запускаемого на современном ARM-процессоре на плате Raspberry Pi.

Статья может быть полезна желающим реализовать генерацию сложных последовательностей установки уровней на выводах одного или нескольких GPIO на других высокоуровневых языках программирования, используя DMA-модули других процессоров.

Предварительная программа PyConRu-2017: выступят докладчики из Disney, Facebook, Яндекса, JetBrains, Тинькофф Банка

Время на прочтение5 мин
Охват и читатели4.7K
Привет! 16-17 июля в 95 км от Москвы пройдет пятая конференция для python-разработчиков PyCon Russia. Видео прошлогодних докладов можно посмотреть на YouTube-канале.

Программа PyCon-2017 получается отличной. На конференции выступят: Paul Hildebrandt (Walt Disney Animation Studios, США), Łukasz Langa (Facebook, США), Nina Zakharenko (Venmo, США), Александр Кошкин (Positive Technologies), Кирилл Борисов (Яндекс), Елизавета Шашкова (JetBrains), Михаил Юматов (ЦИАН), Ольга Сентемова (Тинькофф Банк), Игорь Новиков (Scalr), Олег Чуркин (Rambler&Co) — и это не все. Подробности программы — под катом.


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

Pygest #10. Релизы, статьи, интересные проекты из мира Python [23 мая 2017 — 5 июня 2017]

Время на прочтение2 мин
Охват и читатели12K
image Всем привет! Это уже десятый выпуск дайджеста на Хабрахабр о новостях из мира Python.

В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся Python 3 и его внутреннего устройства, Django, производительности и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
Перейти к дайджесту

Да, Python медленный, но меня это не волнует

Время на прочтение9 мин
Охват и читатели78K
Разговоры о снижении производительности ради продуктивности.


Я беру паузу в моём обсуждении asyncio в Python, чтобы поговорить о скорости Python. Позвольте представиться, я — ярый поклонник Python, и использую его везде, где только удаётся. Одна из причин, почему люди выступают против этого языка, — то, что он медленный. Некоторые отказываются даже попробовать на нём поработать лишь из-за того, что «X быстрее». Вот мои мысли на этот счёт.
Читать дальше →

Именованные кортежи. Пишем код на Python чище

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

В стандартной библиотеке питона содержится специализированный тип "namedtuple", который, кажется, не получает того внимания, которое он заслуживает. Это одна из прекрасных фич в питоне, которая скрыта с первого взгляда.



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

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

Эксперименты с malloc и нейронными сетями

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


Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc() и free(). Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc(). Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.


Внутри:


  • Совершенствуем libtracemalloc, перехватчик malloc().
  • Строим LSTM на Keras — глубокую рекуррентную сеть.
  • Обучаем модель на примере работы реального приложения (vcmi/vcmi — а вы думали, причем здесь Heroes III?).
  • Удивляемся неожиданно хорошим результатам.
  • Фантазируем про практическое применение технологии.
  • Исходники.

Интересно? Добро пожаловать под кат.


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

Расчет оттока клиентов банка (решение задачи с помощью Python)

Время на прочтение2 мин
Охват и читатели19K
Хочу поделиться опытом решения задачи по машинному обучению и анализу данных от Kaggle. Данная статья позиционируется как руководство для начинающих пользователей на примере не совсем простой задачи.
Читать дальше →

8 навыков, необходимых в профессии Data Scientist

Время на прочтение4 мин
Охват и читатели21K
Светлана Шаповалова, редактор блога «Нетологии», адаптировала статью Dave Holtz, в которой он рассказал о восьми навыках, которые помогут начать карьеру Data Scientist.

Интересна профессия Data Scientist? Самое время начать её изучать: Томас Дэвенпорт и Дж. Патил, известные лидеры области, в статье для Harvard Business Review назвали Data Scientist «самой желанной профессией XXI века».

Но как стать дата-сайентистом? Если верить большинству источников, создастся впечатление, что понадобится, как минимум, ученая степень в самых разных областях: от разработки программного обеспечения, обработки данных, работы с базами данных и статистики до машинного обучения и визуализации данных.


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

Сравнение производительности иерархических моделей Django и PostgreSQL

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

Добрый день, уважаемые читатели.


Сегодняшняя статья будет посвящена сравнению моделей работы с иерархическими данными в PostgreSQL, через Django приложение. В статья я специально не использую чистую реализацию в базе данных, т. к. меня интересует именно производительность в среде, приближенной к боевой.

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

Pygest #9. Релизы, статьи, интересные проекты из мира Python [8 мая 2017 — 22 мая 2017]

Время на прочтение2 мин
Охват и читатели9.8K
image Всем привет! Это уже девятый выпуск дайджеста на Хабрахабр о новостях из мира Python.

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

А теперь к делу!
Перейти к дайджесту

Обзор профессии Data Scientist

Время на прочтение4 мин
Охват и читатели204K
Data Scientist — это эксперт по аналитическим данным, который обладает техническими навыками для решения сложных задач, а также любопытством, которое помогает эти задачи ставить. Они частично математики, частично компьютерные ученые и частично трендспоттеры.

Data Scientist требует реальных и практических знаний методов статистического анализа данных, навыков построения математических моделей (от нейронных сетей до кластеризации, от факторного до корреляционного анализов), работы с большими массивами данных и уникальной способности находить закономерности. Но это все лирика. Давайте теперь по делу.
Читать дальше →

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

Разбиение слов на элементы таблицы Менделеева

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


(Полный исходный код лежит тут)


Сидя на пятичасовом занятии по химии, я часто скользил взглядом по таблице Менделеева, висящей на стене. Чтобы скоротать время, я начал искать слова, которые мог бы написать, используя лишь обозначения элементов из таблицы. Например: ScAlEs, FeArS, ErAsURe, WAsTe, PoInTlEsSnEsS, MoISTeN, SAlMoN, PuFFInEsS.


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


  • Вход: Amputations
  • Выход: AmPuTaTiONS, AmPUTaTiONS
Читать дальше →

Нейрокурятник часть 2: про бота, который постит фотографии

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

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

Статьи про нейрокурятник
Заголовок спойлера
  1. Вступление про обучение себя нейросетям
  2. Железо, софт и конфиг для наблюдения за курами
  3. Бот, который постит события из жизни кур — без нейросети
  4. Разметка датасетов
  5. Работающая модель для распознавания кур в курятнике
  6. Итог — работающий бот, распознающий кур в курятнике

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

Механизм подсчета нейронной сети в PL/SQL для распознавания рукописных цифр

Время на прочтение10 мин
Охват и читатели16K
Дорогие коллеги, спешим порадовать всех, кто неравнодушен к наукоемким задачам. Сегодня мы приготовили для вас перевод любопытной публикации от экспертов по базам данных из CERN, посвященный обучению и эксплуатации нейронных сетей с помощью Python и инструментария на базе Oracle PL/SQL.



В этой статье вы найдете пример построения и развертывания базового механизма подсчета искусственной нейронной сети с использованием PL/SQL. Статья предназначена для учебных целей, в частности для практиков Oracle, которые хотят на конкретном примере познакомиться с нейронными сетями.
Читать дальше →

Web crawler с использованием Python и Chrome

Время на прочтение3 мин
Охват и читатели50K
Добрый день, дорогие друзья.

Недавно, сидя на диване, я задумался о том, что хочется мне сделать своего паука, который что-то бы смог качать с веб сайтов. Но качать он должен был бы не простой загрузкой, а как настоящий милый добрый браузер (т.е. JavaScript чтобы исполнялся).

В моей голове всплыли такие интересные штуки, как Selenium, PhantomJS, Splash и всякое подобное. Все эти штуки были мне немного втягость. Вот какие причины я выявил:

  • Дело в том, что я хотел бы писать на своем любимом питоне, потому что очень не люблю JavaScript, а это уже означает, что большая часть уже не работала бы (или пришлось их как-то склеивать, что тоже отстой).
  • Еще эти безголовые браузеры обновляются как когда.
  • Но вот Selenium очень милая штука, но я не нашел, как там отслеживать загрузку страниц, или хотя бы адекватного способа выдрать куку или задать её. Слышал, что многие любители селениума инжектят в страничку JavaScript, что для меня дико, потому что где-то полгода назад я делал сайтик, который отрывал любые JavaScript вызовы с сайта и потенциально мог определять моего паука. Мне бы очень не хотелось таких казусов. Хочется чтобы мой паук выглядел как браузер максимально точно.

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

О том, как в Instagram отключили сборщик мусора Python и начали жить

Время на прочтение8 мин
Охват и читатели51K
Отключив сборщик мусора Python (GC), который освобождает память, отслеживая и удаляя неиспользуемые данные, Instagram стал работать на 10% быстрее. Да-да, вы не ослышались! Отключив сборщик мусора, можно сократить объем потребляемой памяти и повысить эффективность работы кэша процессора. Хотите узнать, почему так происходит? Тогда пристегните ремни!

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

Анализ комуникации из Tor сети в инфраструктуру с помощью ELK стека

Время на прочтение9 мин
Охват и читатели7.5K
ElasticSeach достаточно гибкая платформа, и полученные в него данные можно обрабатывать многими способами, даже за пределами стека ELK. Для этого предоставлено более десятка различных API. Но для многих задач будет достаточно и возможностей Kibana.

Одной из таких я хотел бы поделиться с сообществом. Для меня, как и любого безопасника, важно видеть и понимать коммуникацию своей инфраструктуры с внешним миром. Одной из самых интересных является коммуникация с луковой сетью (Tor).


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

Модель ПИД регулятора на Python

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

В поисках простой модели ПИД регулятора с объектом


Моделированию работы ПИД регулятора посвящено большое количество публикаций в сети. Лидирует проектирование моделей ПИД регулятора с применением Matlab Simulink [1,2] (134 миллиона ссылок в yandex). Сам процесс создания модели какой-то однообразный. В модель переносят всё новые и новые блоки. Одно движение ручного манипулятора и нате вам ПИД контролер, ещё одно и вот передаточная функция объекта. Соединяешь блоки, настраиваешь параметры, готовишь вычислитель. Да, возможностей много, но как-то слишком всё искусственно. И уже становится совсем непонятным к чему тут дифференциальные уравнения, методы их решения и то операционное исчисление, которым долго морочили голову. Ищу реализацию ПИД в Mathcad, тут ссылок в том же yandex, поменьше, всего то 81 миллион, а математики и формул побольше. Рассматриваю пример ПИД, поставляемый вместе с пакетом Mathcad 14.


В качестве объекта колебательное звено. Много умных объяснений, но в итоге два оператора laplace и invlaplace. Общая передаточная функция имеет в числителе вторую степень оператора, а в знаменателе четвёртую. Чтобы операторы laplace и invlaplace сработали, когда подключены все три составляющих ПИД, находят ещё и корни знаменателя передаточной функции, эти корни комплексно сопряжённые.



Теперь ищу реализацию ПИД на Python. Тихо радовался 97 миллионам результатов, но не долго. О Python 2.7 только применительно к прошивке Arduino на примере ESP32. Но и это переполняет сердце гордостью за Python.

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