Обновить
1024K+

Python *

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

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

Глупая причина, по которой не работает ваше хитрое приложение машинного зрения: ориентация в EXIF

Время на прочтение5 мин
Охват и читатели23K
Я много писал о проектах компьютерного зрения и машинного обучения, таких как системы распознавания объектов и проекты распознавания лиц. У меня также есть опенсорсная библиотека распознавания лиц на Python, которая как-то вошла в топ-10 самых популярных библиотек машинного обучения на Github. Всё это привело к тому, что новички в Python и машинном зрении задают мне много вопросов.



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

Генератор музыкальных каверов на Python в Blender

Время на прочтение7 мин
Охват и читатели10K
В данной статье я расскажу о моём аддоне к блендеру, о причинах, побудивших меня к его созданию, процессе разработки и об «успехе» на YouTube.


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

Решение задания с pwnable.kr 25 — otp. Ограничение размера файла в Linux

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

В данной статье решим 25-е задание с сайта pwnable.kr.

Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

bear_hug: игры в ASCII-арте на Python3.6+

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


Для своих игр в ASCII-арте я написал библиотеку bear_hug с очередью событий, коллекцией виджетов, поддержкой ECS и прочими полезными мелочами. В этой статье мы посмотрим, как с её помощью сделать минимальную работающую игру.
Читать дальше →

Как открыть ссылку в Python. Работа с WebBrowser и решение проблемы с Internet Explorer

Время на прочтение4 мин
Охват и читатели192K
В ходе работы над курсачом для универа столкнулся со стандартным модулем Python — WebBrowser. Через этот модуль я хотел реализовать работу голосового помощника — Lora с дефолтным браузером, но всё пошло не так гладко как ожидалось. Давайте для начала расскажу вам что это за модуль и как он вообще работает.
Читать дальше →

Почему для нового проекта я взял Robot Framework

Время на прочтение10 мин
Охват и читатели14K
Недавно я сменил проект — пришел в новую разработку, где до меня не было никакого тестирования, ни ручного, ни автоматического. Условий на инструментарий (за исключением того, что это Python) заказчик не накладывал, так что я сделал собственный выбор. В этой статье я расскажу, почему в таких условиях предпочел Robot Framework. А в конце будет немного специально написанных под статью примеров, иллюстрирующих, о чем речь.

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

О прелестях перехода на панель и не только

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

Как очевидно из заголовка, речь пойдет о библиотеке Panel, которая позволяет конвертировать Jupyter блокноты в безопасные веб приложения, где начинка скрыта от нетехнических пользователей, но остается свобода манипулирования внутренними параметрами, то есть не просто перестраивать данные, но и делать запросы в кернел. TL;DR Shiny for Python.
Читать дальше →

Связный список на Python: Коты в коробках

Время на прочтение3 мин
Охват и читатели147K
И снова здравствуйте! В преддверии старта курса «Разработчик Python» подготовили для вас небольшой авторский материал о связных списках на Python.



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


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

Python + Keras + LSTM: делаем переводчик текстов за полчаса

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

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



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

Как выглядело бы Московское метро в трехмерном мире

Время на прочтение10 мин
Охват и читатели108K
UPD: По просьбам в комментах добавляю ссылку на вращабельную схему на Javascript
К сожалению, код javascript вставить в тело поста не удалось
Добрый день! Недавно я читал блог одного урбаниста, который рассуждал о том, какая должна быть идеальная схема метро.Схему метро можно рисовать исходя из двух принципов:

  • Схема должна быть удобной и простой для запоминания и ориентирования
  • Схема должна соответствовать географии города

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

Достаточно вспомнить, как выглядит схема Московского метро с красивыми кольцами и прямыми линиями:
Читать дальше →

Нескучный туториал по NumPy

Время на прочтение19 мин
Охват и читатели305K
Меня зовут Вячеслав, я хронический математик и уже несколько лет не использую циклы при работе с массивами…

Ровно с тех пор, как открыл для себя векторные операции в NumPy. Я хочу познакомить вас с функциями NumPy, которые чаще всего использую для обработки массивов данных и изображений. В конце статьи я покажу, как можно использовать инструментарий NumPy, чтобы выполнить свертку изображений без итераций (= очень быстро).

Не забываем про

import numpy as np

и поехали!
Читать дальше →

Подборка @pythonetc, сентябрь 2019

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


Новая подборка советов про Python и программирование из моего авторского канала @pythonetc.

Предыдущие подборки
Читать дальше →

Celery taskcls: новый декоратор, новые возможности

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

Привет, Хабр! Я расскажу тебе историю своего профессионального подгорания.


Так вышло, что я терпеть не могу рутинных однообразных действий. У меня за плечами несколько проектов, использующих Celery. Каждый раз, когда задача становится сложнее вывода 2 + 2 = 5, шаблон решения сводится к созданию класса, выполняющего задачу, и функции-стартера, с которой умеет работать Celery — бойлерплейта. В этой статье я расскажу, как я боролся с бойлерплейтом, и что из этого вышло.


Logo

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

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

Способы создания гистограмм с помощью Python

Время на прочтение2 мин
Охват и читатели193K
За последний год я сталкивалась с необходимостью рисования гистограмм и столбчатых диаграмм достаточно часто для того, чтобы появилось желание и возможность об этом написать. Кроме того, мне самой довольно сильно не хватало подобной информации. В этой статье приведен обзор 3 методов создания таких графиков на языке Python.

Начнем с того, чего я сама по своей неопытности не знала очень долго: столбчатые диаграммы и гистограммы — разные вещи. Основное отличие состоит в том, что гистограмма показывает частотное распределение — мы задаем набор значений оси Ox, а по Oy всегда откладывается частота. В столбчатой диаграмме (которую в англоязычной литературе уместно было бы назвать barplot) мы задаем и значения оси абсцисс, и значения оси ординат.

Для демонстрации я буду использовать избитый набор данных библиотеки scikit learn Iris. Начнем c импортов:

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()

Преобразуем набор данных iris в dataframe — так нам удобнее будет с ним работать в будущем.

data = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])

Из интересующих нас параметров data содержит информацию о длине чашелистиков и лепестков и ширине чашелистиков и лепестков.

Используем Matplotlib
Построение гистограммы
Cтроим обычную гистограмму, показывающую частотное распределение длин лепестков и чашелистиков:

fig, axs = plt.subplots(1, 2)
n_bins = len(data)
axs[0].hist(data['sepal length (cm)'], bins=n_bins)
axs[0].set_title('sepal length')
axs[1].hist(data['petal length (cm)'], bins=n_bins)
axs[1].set_title('petal length')

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

Композитор с долгой кратковременной памятью

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

Автоматическое сочинение музыки



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

Я в течение нескольких лет предпринимал примитивные попытки автоматического сочинения музыки для Visions of Chaos. В основном при этом использовались простые математические формулы или генетические мутации случайных последовательностей нот. Добившись недавно скромного успеха в изучении и применении TensorFlow и нейронных сетей для поиска клеточных автоматов, я решил попробовать использовать нейронные сети для создания музыки.

Как это работает


Композитор обучает нейросеть с долгой кратковременной памятью (Long short-term memory, LSTM). LSTM-сети хорошо подходят для предсказания того, «что встретится дальше» в последовательностях данных. Подробнее о LSTM можно прочитать здесь.


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

Как в сжатые сроки освоить HERE API

Время на прочтение3 мин
Охват и читатели7K
image alt
-Ты где?
-I’m here

В конце сентября состоялся самый большой в мире хакатон, который проходил в Казани. Данное мероприятие по количеству участников вошло в «Книгу рекордов Гиннесса».


На эти 48 часов перед нами была поставлена задача:

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

Крадущийся тигр, затаившийся SQLAlchemy. Основы

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


Доброго дня.


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


Данная ORM имеет порог вхождения выше среднего, поэтому я попытаюсь объяснить всё простым языком и с примерами. Статья будет полезна тем, кто уже работает с sqlalchemy и хочет прокачать свои навыки или только знакомится с этой библиотекой.

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

Сертифицированный мониторинг температуры

Время на прочтение4 мин
Охват и читатели9.2K
В нашей компании используется Система менеджмента качества (СМК). В рамках одной из сертификации по системе ISO:9001 было предписано собирать показания температуры и влажность в некоторых помещениях, например в серверной или на складах.

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

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

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

Как технология in-memory изменила бизнес-аналитику

Время на прочтение10 мин
Охват и читатели10K
Примерно 5 миллисекунд проходит от запроса до ответа, если данные хранятся на жестком диске. SSD отвечает в 30 раз быстрее — за 150 микросекунд. Оперативной памяти требуется в 300,000 раз меньше времени — лишь 15 наносекунд.*



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

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

Технология in-memory заключается в том, что для трансформации в оперативную память единовременно загружаются все данные из разных источников. После этого трансформацию можно выполнить «на лету», без запросов к диску. Например, кликом выбрать измерение и сразу получить график, который будет отображать значения показателей в нужном разрезе. Благодаря тому, что все данные уже в оперативной памяти, аналитическому приложению не нужно делать запросы к жесткому диску для получения новой информации.

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

SAX-парсер python vs DOM-парсер python. Парсим ФИАС-houses

Время на прочтение3 мин
Охват и читатели7.4K
В предыдущей статье был рассмотрен подход к созданию csv из xml на базе данных, которые публикует ФИАС. В основу парсинга был положен DOM-парсер, загружающий в память весь файл целиком перед обработкой, что приводило к необходимости дробления файлов большого размера в виду ограниченного объема оперативной памяти. В этот раз предлагается посмотреть насколько хорош SAX-парсер и сравнить его скорость работы c DOM-парсером. В качестве подопытного будет использоваться наибольший из файлов базы ФИАС — houses, размером 27,5 ГБ.
Читать дальше →