Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
📬Mail.ru → Mail
ℹ️Mail yangilangan versiyasini taqdim etdi: endi nomida .ru domenisiz va korporativ palitrada quyuq ko'k va och yashil ranglar bilan.
🐶 Pochta ham maxsus maskotga ega - Bayt. U foydalanuvchilarni Mail mahsulotlarining xususiyatlari va yangilanishlari bilan tanishtiradi. Sun'iy idrok texnologiyasi bilan boyitilgan.
☹️ Aytgancha, afsonaviy Mail.ru Agent bir necha kun oldin faoliyatini yakunlagani haqida ham bilsangiz kerak...
➡️#mailru | Birinchi raqamli IT-Blog
⚡️К Дню Победы запущен сервис, который может восстановить старые фотографии.
Заходите на сайт, загружайте фото, и через несколько секунд получите обновленный снимок. Сервис способен восстановить незначительные детали или раскрасить черно-белое изображение.
Работает бесплатно, без регистрации.
На видео демонстрация работы.
#ИИ#AI#Нейросети#Mailru
———
#Инструменты#Изображения
✍️Подписывайтесь: @aiforproduct
#вакансия
Data Engineer в VK Adtech, Москва
Департамент создаёт рекламные продукты и инструменты для бизнеса. Это myTarget, рекламный кабинет ВКонтакте и платформа VK Реклама. Наши разработки также интегрированы в другие продукты VK: Одноклассники, Портал и Почту Mail․ru. Всё это открывает бизнесу доступ к 95% мобильной аудитории рунета. В команде минимум бюрократии и максимум возможностей влиять на продукт — воплощение фич от идеи до релиза может занимать всего пару недель.
Ищем опытного и самостоятельного дата-инженера, который будет участвовать в создании ML-инструментов. Предстоит разрабатывать и поддерживать код на Scala/Spark (UDF/UDAF, Spark ML Transformers, etc.) и Python (платформа ML/ETL). А ещё помогать команде следить за качеством генерируемых данных.
У нас вы будете работать с данными популярных соцсетей (ВК, ОК, Дзен) и других проектов экосистемы VK. Также надеемся, что вам понравится наш кластер Hadoop на примерно 100 петабайтов.
Задачи:
• Проектировать, разрабатывать и поддерживать инструменты для создания надёжных пайплайнов обработки данных;
• участвовать в развитии системы для создания и использования ML-моделей;
• исследовать и интегрировать в продукт новые источники данных;
• создавать витрины признаков для ML-моделей.
Требования:
• Знание алгоритмов и структур данных;
• умение писать качественный, поддерживаемый код на Scala, Python, SQL;
• опыт использования Hadoop, знание механизмов распределённого хранения и обработки данных (HDFS, Spark, Hive);
• знакомство с Bash, Git, Linux, Docker;
• опыт работы с терминалом по SSH.
Будет плюсом:
• Умение использовать Luigi, Airflow, Kafka;
• опыт написания Spark UDF/UDAF на Catalyst API и трансформеров spark.ml;
• знание Java и нюансов JVM;
• понимание классических ML-моделей, задач и методов DS.
✍️ Отправить CV и по всем вопросам: https://t.me/olkony
#de#ml#engineer#mailru#adtech#spark#python#hadoop#kafka#гибрид#remote#middle#senior
#вакансия
Data analyst / Data scientist, Москва
VK Реклама — одно из ключевых подразделений в VK. Ежедневно наши сервисы охватывают более 140 млн пользователей в России и странах СНГ. Более 100 тыс. рекламодателей каждый день запускают рекламные кампании у нас и находят своих клиентов. Мы — команда ML внутри VK Рекламы, отвечаем за её качество, чтобы пользователи могли увидеть наиболее подходящую им рекламу, а рекламодатели потратить свои бюджеты наиболее эффективно.
Основная задача нашего направления — проверять гипотезы, искать инсайты и точки роста эффективности и впоследствии внедрять их в прод. У нас идёт полный ML-цикл от проработки гипотезы до проведения экспериментов и внедрения фич в продакшен. Результаты нашей работы напрямую влияют на эффективность такого большого продукта, как VK Реклама.
Команда ad hoc аналитики занимается проверкой гипотез и поиском точек роста. Тестирует гипотезы в реальных экспериментах и оценивает изменения. Мы ищем в команду сильных аналитиков, совместными усилиями будем проводить различные аналитические исследования для повышения эффективности нашего продукта.
Задачи:
• Анализ больших данных для поиска потенциальных точек роста и выдвижения гипотез;
• ad hoc аналитика, поиски зависимостей в данных;
• проверка гипотез, поиск узких мест, донесение результатов до прода;
• оптимизация моделей рекламного аукциона и моделей ранжирования пользователей;
• проведение и статоценка экспериментов;
• разработка и автоматизация отчётности;
• сбор, обработка и дальнейшее использование больших данных.
Требования:
• Хорошее знание SQL (сложные запросы, порядок выполнения операций) — нужно написать не просто запрос, а оптимальный запрос, который сможет отработать на действительно больших данных;
• знание Python для анализа данных; библиотеки Pandas, Numpy — нужно будет сделать анализ данных, проработать гипотезы и правильно их визуализировать. Недостаточно просто найти какой-то паттерн — нужно его правильно представить наружу;
• работа с системами больших данных будет большим плюсом (Hadoop, PySpark);
• хорошее понимание матстатистики;
• анализ данных с учётом сезонности, поиски аномалий и выбросов в данных.
Будет плюсом:
• Опыт работы с ClickHouse, Hadoop, Git, Jenkins;
• работа с инструментами BI-отчётности, понимание ETL-инструментов (делаем автоматические отчёты, готовим для них данные, настраиваем выгрузки и другое).
✍️ Отправить CV и по всем вопросам: https://t.me/olkony
#ds#adhoc#analytics#ml#mailru#vk#adtech#sql#python#pandas#numpy#pysprak#hadoop#mathstat#clickhouse#гибрид#remote#middle#senior
Субботнее обращение
Тёмный Лорд благодарен тем, кто в этом канале с самого начала, и не винит тех, кто подумал «да что я здесь делаю?» и отписался. Я знаю, что немногие готовы и способны переварить все перипетии информационных войн (таких специалистов в нашей стране вообще мало), а остальных могут не интересовать PR и журналистика.
Но при этом мне искренне хочется, чтобы этот канал был достаточно прост для понимания и полезен не только профессионалам, но и всем неравнодушным к судьбе нашей Родины. Хочется показать, как всё, о чём здесь выходят посты, касается обычного человека. И, конечно, хочется подсветить ранее неизвестные или забытые медийной пучиной факты — честно и прозрачно для проверки.
Так что надеюсь, что вам тут интересно.
Обновлённый рубрикатор (жмите на тег, чтобы увидеть список постов с ним)
Виды постов: #новости#подборка#опрос#кейс
Сферы деятельности: #медиа#журналистика#PR#маркетинг#реклама#SMM#копирайтинг#работа
Глобальное: #инфовойны#фейки#дезинформация
Платформы: #Facebook#Google#Twitter#Instagram#TikTok#Telegram#Microsoft#Вконтакте#Mailru
Страны/регионы: #Россия#США#Великобритания#Белоруссия#Прибалтика
Издания: #RT#ВГТРК#МИА#Guardian#Bellingcat#Дождь
Остальное: #иносми#СерыйКардинал#наблюдения#мемы#релизы#ООН#OSINT#расследование#руководство#инструменты#цитаты#теория#наука#источники#IT#выборы#политика#музыка#документы