Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Trio – асинхронное программирование для людей

Время на прочтение7 мин
Количество просмотров9.3K
image

В Python существует библиотека Trio – библиотека асинхронного программирования.
Знакомство с Trio в основном будет интересно тем, кто работает на Asyncio, потому что это хорошая альтернатива, позволяющая решать часть проблем, с которыми не может справиться Asyncio. В этом обзоре рассмотрим, что из себя представляет Trio и какие фичи она нам дает.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

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

Время на прочтение6 мин
Количество просмотров7.2K
От переводчика. На Хабре часто бывают статьи, где дают разные полезные советы, как лучше проходить собеседования и как потом вести себя на новой работе. И очень часто в них рекомендуют вести себя уверенно, хорошо держаться, иметь высокую самооценку и т.п. Но есть одна проблема — нигде обычно не сказано, как же этого достичь на практике. Как стеснительному человеку ни с того ни с сего вдруг стать уверенным в себе? Заполнить этот досадный пробел призвана предлагаемая вашему вниманию статья из американского журнала MAD, № 24 за 1955 год. «Устаревший хлам?» — хмыкнет кто-то. «Отнюдь, — отвечу я. — Неувядающая классика!».

Автор: Роджер Прайс

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

В наши дни множество Молодых Людей считают, что как только они получат в Гарварде степень Доктора и посвятят пару лет экспериментам в Пристонском институте перспективных исследований, их немедленно начнут осаждать предприниматели, горящие желанием предложить им прибыльные должности Ремонтников телевизионных аппаратов или Окружных Политических лидеров. Увы! Конкуренция во всех сферах еще никогда не была такой острой. Хороших намерений недостаточно. Ключ к успеху как в бизнесе, так и в обществе, — это Уверенность в себе!

Вы знаете, что миллионы людей реализуют всего лишь 10% своего потенциала Лидерства и Делового Успеха, потому что им мешает стеснительность и отсутствие Уверенности в себе? А к вам это тоже относится? Встречаясь с людьми, вы съеживаетесь и хнычете, ощущаете дурацкую “неполноценность”, просто потому, что они физически и умственно вас превосходят?
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии18

Отслеживаем прогресс выполнения в Python

Время на прочтение2 мин
Количество просмотров145K

Зачем нужны индикаторы прогресса?


Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.


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

Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии11

Почему Вы должны попробовать FastAPI?

Время на прочтение4 мин
Количество просмотров105K

image Лого взято из Github репозитория FastAPI


FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


FastAPI построен на базе Starlette и Pydantic.
StarletteASGI микро-фреймворк для написания веб-приложений.
Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии50

Переменные окружения для Python проектов

Время на прочтение4 мин
Количество просмотров150K

Переменные окружения для Python проектов


При разработки web-приложения или бота мы часто имеем дело с какой-либо секретной информацией, различными токенами и паролями (API-ключами, секретами веб-форм). "Хардкодить" эту информацию, а тем более сохранять в публично доступной системе контроля версий это очень плохая идея.


# Плохая практика. Не делай так.
API_KEY = 'very_secret_password'

Конфигурационные файлы


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


# Уже лучше.
from config import API_KEY
app = Flask(__name__)
app.config['API_KEY'] = API_KEY

Переменные окружения


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


$ export FLASK_APP=hello.py
$ flask run
 * Running on http://127.0.0.1:5000/
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии12

Новый курс по Python от Microsoft [на английском]

Время на прочтение2 мин
Количество просмотров5.9K
Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно.

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

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

К счастью, концепции обычно не меняются при переходе с одного языка программирования на другой. Конечно, синтаксис может быть другим, но оператор if все еще является оператором if, даже если он написан с использованием { } или End If. Поэтому не нужно учиться тому, как программировать, нужно учиться программировать на новом языке.

Наши коллеги Сюзан и Крис создали серию обучающих видео по Python для начинающих! Вы можете знать, как писать код, например, на JavaScript, Java или C# (или на COBOL, или на Bash, или… на самом деле это не имеет значения). Возможно, вы учились в колледже, онлайн или читали книгу, и вам не нужно учить, что такое выражение if. Вам скорее нужно понять, как выглядит выражение if в Python.

Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии0

9 лучших опенсорс находок за сентябрь 2019

Время на прочтение2 мин
Количество просмотров52K

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


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, C, Rust, Ruby, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.


Прошлый выпуск.

Читать дальше →
Всего голосов 115: ↑112 и ↓3+109
Комментарии19

C/C++ из Python (C API)

Время на прочтение7 мин
Количество просмотров26K
main

Продолжаем тему как вызывать C/C++ из Python3. Теперь используем C API для создания модуля, на этом примере мы сможем разобраться как работает cffi и прочие библиотеки упрощающие нам жизнь. Потому что на мой взгляд это самый трудный способ.

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии8

NumPy в Python. Часть 3

Время на прочтение6 мин
Количество просмотров110K

Предисловие переводчика


И снова здравствуйте! Продолжаем наш цикл статей по переводу мана о numpy. Приятного чтения.


Операторы сравнения и тестирование значений


Булево сравнение может быть использовано для поэлементного сравнения массивов одинаковых длин. Возвращаемое значение это массив булевых True/False значений:

>>> a = np.array([1, 3, 0], float)
>>> b = np.array([0, 3, 2], float)
>>> a > b
array([ True, False, False], dtype=bool)
>>> a == b
array([False,  True, False], dtype=bool)
>>> a <= b
array([False,  True,  True], dtype=bool)
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

Синтез регулятора методом обратной задачи динамики

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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии4

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Время на прочтение39 мин
Количество просмотров363K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии15

Учебное пособие по TensorFlow: 10 минутное практическое занятие по TensorFlow для начинающих [перевод]

Время на прочтение6 мин
Количество просмотров45K

Привет, Хабр! Представляю вашему вниманию перевод статьи "TensorFlow Tutorial: 10 minutes Practical TensorFlow lesson for quick learners" автора Ankit Sachan.


Этот туториал по TensorFlow предназначен для тех, кто имеет общее представление о машинном обучении и пытается начать работу с TensorFlow.

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии8

Python из C (C API)

Время на прочтение6 мин
Количество просмотров31K
main

В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на Python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с Python3 из C под Linux (с тем что использовал). Опишу как создать класс и вызвать его методы, получить доступ к переменным. Вызов функций и получение переменных из модуля. А также проблемы с которыми я столкнулся и не смог их понять.

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии26

Применение машинного обучения и Data Science в промышленности

Время на прочтение22 мин
Количество просмотров67K
Хабр, привет. Перевел пост, который идёт строго (!) в закладки и передаётся коллегам. Он со списком блокнотов и библиотек ML и Data Science для разных отраслей промышленности. Все коды на Python, и размещены на GitHub. Они будут полезны как для расширения кругозора, так и для запуска своего интересного стартапа.

image

Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
Читать дальше →
Всего голосов 77: ↑71 и ↓6+65
Комментарии13

Как работать с Google Trends — руководство для новичков

Время на прочтение4 мин
Количество просмотров33K
image

Привет, Хабр!

Многие не знают, как работать с трендами в интернете.
И тем более, не знают о существовании бесплатного сервиса, решающего эту проблему- Google Trends

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

Статья будет полезна специалистам, ранее не работавшим с сервисом.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Обзор Python-пакета Datatable

Время на прочтение8 мин
Количество просмотров18K
«Пять экзабайт информации создано человечеством с момента зарождения цивилизации до 2003 года, но столько же сейчас создаётся каждые два дня». Эрик Шмидт


Datatable — это Python-библиотека для выполнения эффективной многопоточной обработки данных. Datatable поддерживает наборы данных, которые не помещаются в памяти.

Если вы пишете на R, то вы, вероятно, уже используете пакет data.table. Data.table — это расширение R-пакета data.frame. Кроме того, без этого пакета не обойтись тем, кто пользуется R для быстрой агрегации больших наборов данных (речь идёт, в частности, о 100 Гб данных в RAM).

Пакет data.table для R весьма гибок и производителен. Пользоваться им легко и удобно, программы, в которых он применяется, пишутся довольно быстро. Этот пакет широко известен в кругах R-программистов. Его загружают более 400 тысяч раз в месяц, он используется в почти 650 CRAN и Bioconductor-пакетах (источник).

Какая от всего этого польза для тех, кто занимается анализом данных на Python? Всё дело в том, что существует Python-пакет datatable, являющийся аналогом data.table из мира R. Пакет datatable чётко ориентирован на обработку больших наборов данных. Он отличается высокой производительностью — как при работе с данными, которые полностью помещаются в оперативной памяти, так и при работе с данными, размер которых превышает объём доступной RAM. Он поддерживает и многопоточную обработку данных. В целом, пакет datatable вполне можно назвать младшим братом data.table.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии10

Apache Kafka и потоковая обработка данных с помощью Spark Streaming

Время на прочтение9 мин
Количество просмотров33K
Привет, Хабр! Сегодня мы построим систему, которая будет при помощи Spark Streaming обрабатывать потоки сообщений Apache Kafka и записывать результат обработки в облачную базу данных AWS RDS.

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

Как реализовать этот кейс без применения магии и волшебных заклинаний — читаем под катом! Поехали!


(Источник картинки)
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии6

Вейвлет – анализ. Основы

Время на прочтение8 мин
Количество просмотров62K

Введение


Английское слово wavelet (от французского «ondelette») дословно переводится как «короткая (маленькая) волна». В различных переводах зарубежных статей на русский язык встречаются еще термины: «всплеск», «всплесковая функция», «маловолновая функция», «волночка» и др.

Вейвлет-преобразование (ВП) широко используется для анализа сигналов. Помимо этого, оно находит большое применение в области сжатия данных. ВП одномерного сигнала – это его представление ввиде обобщенного ряда или интеграла Фурье по системе базисных функций.

$\psi _{ab}(t)=\frac{1}{\sqrt{a}}\psi \left ( \frac{t-b}{a} \right ) $, (1)

сконструированных из материнского (исходного) вейвлета $\psi(t)$, обладающего определенными свойствами за счет операций сдвига во времени ( b ) и изменения временного масштаба (a).

Множитель $1/\sqrt{a}$ обеспечивает независимость нормы функций (1) от масштабирующего числа (a). Для заданных значений параметров a и b функция $\psi_{ab}(t)$ и есть вейвлет, порождаемый материнским вейвлетом $\psi(t)$.

В качестве примера приведём вейвлет «мексиканская шляпа» во временной и частотной областях:

Листинг вейвлета для временной области
from numpy import*
import matplotlib.pyplot as plt
x= arange(-4,30,0.01)
def w(a,b,t):    
    f =(1/a**0.5)*exp(-0.5*((t-b)/a)**2)* (((t-b)/a)**2-1)
    return f
plt.title("Вейвлет «Мексиканская шляпа»:\n$1/\sqrt{a}*exp(-0,5*t^{2}/a^{2})*(t^{2}-1)$")
y=[w(1,12,t) for t in x]
plt.plot(x,y,label="$\psi(t)$ a=1,b=12") 
y=[w(2,12,t) for t in x]
plt.plot(x,y,label="$\psi_{ab}(t)$ a=2 b=12")   
y=[w(4,12,t) for t in x]
plt.plot(x,y,label="$\psi_{ab}(t)$ a=4 b=12")   
plt.legend(loc='best')
plt.grid(True)
plt.show()



Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии15

Мониторинг метеоданных в Grafana

Время на прочтение2 мин
Количество просмотров14K
В этой статье речь пойдет о том, как вывести для мониторинга — нужные показатели системы на графики, при этом не написав ни одной строчки кода. Используемое ПО распространяется свободно кроме сервера БД — это MS SQL сервер, развернутый в облачном сервисе MS Azure, который вы без труда можете заменить на любой другой.

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


Всего голосов 6: ↑5 и ↓1+4
Комментарии7

История транзистора, часть 2: из горнила войны

Время на прочтение16 мин
Количество просмотров18K


<< До этого: Пробираясь на ощупь в темноте

Горнило войны подготовило почву для появления транзистора. С 1939 по 1945 года технические знания из области полупроводников невероятно сильно разрослись. И тому была одна простая причина: радар. Самая важная технология войны, среди примеров применения которой: обнаружение воздушного налёта, поиск подводных лодок, направление ночных авиарейдов на цели, наведение средств ПВО и морских орудий. Инженеры даже научились впихивать крохотные радары в артиллерийские снаряды, чтобы те взрывались при пролёте рядом с целью – радиовзрыватели. Однако источником этой новой мощной военной технологии была более мирная область: изучение верхних слоёв атмосферы в научных целях.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии14

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность