Search
Write a publication
Pull to refresh
-6
0.5
Send message

Эксперименты с микроконтроллерами в Jupyter Notebook

Reading time12 min
Views13K

Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике.


Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического представления данных. Долгое время мы просто считали на нем, используя Python и математические библиотеки (numpy, SciPy, matplot и т.д.). Но оказывается данная среда не так проста и имеет гораздо больший потенциал. Очень неожиданно, но Jupyter позволяет легко манипулировать электронными устройствами на микроконтроллерах, может служить чем-то вроде REPL среды для МК только без слабенького MicroPython и внушительной поддержкой переферии чипа, причем все это почти из коробки.


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

Загрузка NumPy-массивов с диска: сравнение memmap() и Zarr/HDF5

Reading time6 min
Views7K
Если ваш NumPy-массив слишком велик для того, чтобы полностью поместиться в оперативной памяти, его можно обработать, разбив на фрагменты. Сделать это можно либо в прозрачном режиме, либо явно, загружая эти фрагменты с диска по одному.



В такой ситуации можно прибегнуть к двум классам инструментов:

  • Метод NumPy memmap(), прозрачный механизм, который позволяет воспринимать файл, расположенный на диске, так, будто он весь находится в памяти. 
  • Похожие друг на друга форматы хранения данных Zarr и HDF5, которые позволяют, по необходимости, загружать с диска и сохранять на диск сжатые фрагменты массива.

У каждого из этих методов есть свои сильные и слабые стороны. 

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

Сканирующее окно по массивам NumPy

Reading time9 min
Views21K

CoLab блокнот с примерами.


Возможно сделать скользящее окно (rolling window, sliding window, moving window) по массивам NumPy на языке программирования Python без явных циклов. В данной статье рассматривается создание одно-, двух-, трех- и N-мерных скользящих окон по массивам NumPy. В результате скорость обработки данных увеличивается в несколько тысяч раз и сравнима по скорости с языком программирования С.


Cкользящее окно применяется в: обработке изображений, искусственных нейронных сетях, интернет протоколе TCP, обработке геномных данных, прогнозировании временных рядов и т.д.


Отказ от ответственности: в исходном коде могут быть ошибки! Если вы видите ошибку, пожалуйста, напишите мне.


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

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

Reading time13 min
Views2.3K

Для кого статья


Если вы что-то производите на заказ, то вы наверняка сталкивались с простоями из-за отсутствия достаточного количества проектов.


Если у вас высока доля переменных затрат, то все ок — вы сокращаете производство и затраты сокращаются. Но если наоборот, превалирует доля постоянных затрат, то встает вопрос привлечения объема заказов, необходимого для покрытия постоянных расходов.


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


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

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

Android для радиоинженера (часть вторая)

Reading time5 min
Views10K
В первой части я немного рассказал о приложении RF & Microwave Toolbox. Во второй части расскажу о не менее интересном приложении, которое позволяет проектировать СВЧ устройства (преимущественно, планарные) на смартфоне/планшете под управлением ОС Android. Если вам интересно, то добро пожаловать под кат…



SCADA на Raspberry: миф или реальность?

Reading time6 min
Views26K
image

Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.

В статье рассмотрим возможность применения таких встраиваемых компьютеров в промышленности. Возьмем за основу устройство на базе Raspberry Pi, поэтапно распишем процесс установки на него открытой бесплатной Open Source SCADA-системы российской разработки — Rapid SCADA, а также разработаем в ней проект абстрактной компрессорной станции, в задачи которой будет входить удаленное управление компрессором и тремя вентилями, а также визуализация технологического процесса производства сжатого воздуха.
Читать дальше →

Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python

Reading time27 min
Views376K

Доброго дня! Мы продолжаем наш цикл статей открытого курса по машинному обучению и сегодня поговорим о временных рядах.


Посмотрим на то, как с ними работать в Python, какие возможные методы и модели можно использовать для прогнозирования; что такое двойное и тройное экспоненциальное взвешивание; что делать, если стационарность — это не про вас; как построить SARIMA и не умереть; и как прогнозировать xgboost-ом. И всё это будем применять к примеру из суровой реальности.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

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

Разработка электроники. Выигрышная стратегия технологического стартапа. Часть I

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



Мир вошёл в эпоху “умных вещей”, что породило интерес к технологическим стартапам, который только растёт год от года. На КС они бьют рекорды по сборам, даже несмотря на то, что достойно выполнить свои обязательства удаётся далеко не всем. За десяток с хвостиком лет попыток работы в роли волшебника воплощающего задумки клиентов и вдыхающего в них жизнь мною накоплено много опыта. Безжалостная статистика говорит о том, что 9 из 10 стартапов терпят фиаско. В моей практике это соотношение менее драматично. Возможно потому, что стараюсь не принимать участие в проектах, изначально имеющих большие шансы на провал.

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

О чём пойдёт речь под катом
Не стоит отливать ТЗ в граните.

Сколько денег необходимо для запуска технологического стартапа?
Начинать проверку вашей идеи стоит ещё до начала разработки.
Стратегическая канва — отличный инструмент для проверки конкурентоспособности.
Создание пространства, свободного от конкуренции на реальном примере.
Изучение ближайших аналогов — хорошая практика.
Подбор ключевых компонентов и оценка себестоимости.
Как создать Голубой Океан

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

Reading time6 min
Views16K

Создаём семантический поисковик с машинным обучением в реальном времени за 300 строк Python кода.

Мой опыт подсказывает, что любой более или менее сложный проект по машинному обучению рано или поздно превращается в набор сложных неподдерживаемых внутренних инструментов. Эти инструменты, как правило, мешанина из скриптов Jupyter Notebooks и Flask, которые сложно развёртывать и интегрировать с решениями типа GPU сессий Tensorflow.


Впервые я столкнулся с этим в университете Карнеги, затем в Беркли, в Google X, и, наконец, при создании автономных роботов в Zoox. Зарождались инструменты в виде небольших Jupyter notebooks: утилита калибровки сенсора, сервис моделирования, приложение LIDAR, утилита для сценариев и т.д.


С ростом важности инструментов появлялись менеджеры. Бюрократия росла. Требования повышались. Маленькие проекты превращались в огромные неуклюжие кошмары.


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

План прокачки для получения профессии Data engineer

Reading time2 min
Views27K
Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность разрабатывать, строить и поддерживать хранилища данных.

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

Разделы:

  • Алгоритмы и структуры данных. Ключевой раздел. Изучишь его — всё остальное тоже получится. Важно набить руку в написании кода и использовании основных структур и алгоритмов.
  • Базы и хранилища данных, Business Intelligence. От алгоритмов переходим в хранению и обработке данных.
  • Hadoop and Big Data. Когда база не входит на винчестер, или когда данные нужно анализировать, но Excel уже не может их загрузить начинаются большие данные. На мой взгляд, переходить к этому разделу нужно только после глубокого изучения двух предыдущих.
Читать дальше →

Windows 10 + Python = VS Code + WSL

Reading time3 min
Views35K
image

Microsoft… Технологических локомотивов нашего времени. Ни для кого не секрет что они крутые, а также, что они поглощают все больше и больше… Всего. К счастью последнее время они только радуют меня своим потенциалом. А после выступления Satya Nadella, где он рассказал миру о том, что Windows больше не является основным продуктом компании, так как они положили курс на внедрение своих API…. Повсюду

Для разработчиков ПО они так же не скупятся. C#, Azure, Visual Studio… Но сейчас пойдет речь о Python, ведь для него местечко здесь тоже пригрели.

Кратко о WSL


С обновлением Windows появилась возможность использовать такую штуку, как WSL (Windows Subsystem for Linux). Не так давно появилась WSL2 с ОЧЕНЬ крутыми доработками. WSL2 использует новейшую и самую новую технологию виртуализации для запуска ядра Linux внутри упрощенной служебной виртуальной машины. Это значит, что такие атрибуты, как изоляция и замедление работы здесь отсутствуют.
Читать дальше →

Векторное управление электродвигателем «на пальцах»

Reading time17 min
Views354K
— Что такое векторное управление?
— Держать ток под 90 градусов.


Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
Читать дальше →

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

Reading time39 min
Views429K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →

Пишем API на Python (с Flask и RapidAPI)

Reading time8 min
Views123K


Если вы читаете эту статью, вероятно, вы уже знакомы с возможностями, которые открываются при использовании API (Application Programming Interface).

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

Изучаем веб-аналитику с нуля. Большая подборка

Reading time3 min
Views75K
Привет, читатель!

Меня зовут Артём Сайгин, я веду телеграм-канал Growth Lab, в котором делюсь опытом роста IT-продуктов.

В сети много статей по веб-аналитике, но найти действительно стоящие и последовательно сгруппированные материалы нелегко.

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

image

Отмечу, что список материалов будет пополняться.

Если я не добавил стоящий материал, свяжитесь со мной — добавлю.

Приступим!

Введение в веб-аналитику


Что такое веб-аналитика и зачем она вам нужна?
Подробное руководство по аналитике веб-трафика
Какие бывают источники трафика
Какие ошибки возникают при работе с Google Analytics и как с ними бороться
Как настраивать представления в Google Analytics — подробное руководство
18 метрик и KPI интернет-маркетинга, которые вы должны знать
Основные термины в веб-аналитике
Что такое UTM-метки и как их применять
Глоссарий: базовые понятия веб-аналитики
Что такое ROI и какие нюансы следует учитывать при его расчете
Модели атрибуции — подробный обзор и сравнение
Модели атрибуции от Google
Что такое A/A тестирование, и как его провести
6 советов начинающему веб-аналитику
Читать дальше →

Мелкая питонячая радость #9: консольные приложения с человеческим лицом

Reading time3 min
Views16K

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


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


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


image

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

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

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

image

Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
Читать дальше →

Статистика на службе у бизнеса. Методология расчёта множественных экспериментов

Reading time8 min
Views3.2K
Добрый день!

Как и было обещано в предыдущей статье, сегодня мы продолжим разговор о методологиях, применяемых в A/B-тестировании и рассмотрим методы оценки результатов множественных экспериментов. Мы увидим, что методологии довольно просты, и математическая статистика не так страшна, а первооснова всего — аналитическое мышление и здравый смысл. Однако предварительно хотелось бы сказать пару слов о том, какие же бизнес-задачи помогают решать строгие математические методы, нужны ли они Вам на данном этапе развития Вашей компании и какие pros and cons существуют в Большой аналитике.
Читать дальше →

Ищем поломку в авто по звуку: призываем немного машинного обучения для поиска аномалий в работе двигателя

Reading time5 min
Views42K

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



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


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


Ну что, пожалуй, пора перейти от слов к делу. Поехали!

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

Галерея лучших блокнотов по ML и Data Science

Reading time3 min
Views34K
Привет, читатель.

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи. Представляю пост который идёт строго (!) в закладки и передаётся коллегам. Он с подборкой примечательных файлов формата Jupyter Notebook по Machine Learning, Data Science и другим сферам, связанным с анализом данных. Эти блокноты Jupyter, будут наиболее полезны специалистам по анализу данных — как обучающимся новичкам, так и практикующим профи.

image

Итак, приступим.

Вводные курсы в Jupyter Notebook


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

Information

Rating
3,222-nd
Registered
Activity