🔥 Polars: шпаргалка
Polars ≠ Pandas. Это колоночный движок, вдохновлённый Rust и SQL. Никаких SettingWithCopyWarning — всё иммутабельно и параллелится.
🚀 Быстрый старт
import polars as pl
df = pl.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"score": [95, 85, 100]
})
📊 Выборка и фильтрация
df.filter(pl.col("score") > 90)
df.select(pl.col("name").str.lengths())
df[df["id"] == 2]
• Комбинированные условия:
df.filter((pl.col("score") > 80) & (pl.col("name").str.contains("A")))
---
## ⚙ Трансформации
• Вычисление новых колонок:
df.with_columns([
(pl.col("score") / 100).alias("percent"),
pl.col("name").str.to_uppercase().alias("name_upper")
])
• Удаление/переименование:
df.drop("id").rename({"name": "username"})
• apply() — только если нельзя обойтись иначе:
df.with_columns(
pl.col("score").map_elements(lambda x: x * 2).alias("doubled")
)
🧠 Группировка и агрегаты
df.groupby("name").agg([
pl.col("score").mean().alias("avg_score"),
pl.count()
])
• Агрегация с кастомной функцией:
df.groupby("name").agg(
(pl.col("score") ** 2).mean().sqrt().alias("rms")
)
---
## 🪄 Ленивая обработка (LazyFrame)
lf = df.lazy()
result = (
lf
.filter(pl.col("score") > 90)
.with_columns(pl.col("score").log().alias("log_score"))
.sort("log_score", descending=True)
.collect()
)
✅ Всё оптимизируется *до выполнения* — pushdown, predicate folding, projection pruning.
🔥 Joins
df1.join(df2, on="id", how="inner")
Варианты: "inner", "left", "outer", "cross", "semi", "anti"
📂 Работа с файлами
pl.read_csv("data.csv")
df.write_parquet("out.parquet")
pl.read_json("file.json", json_lines=True)
Ленивая загрузка:
pl.read_parquet("big.parquet", use_pyarrow=True).lazy()
---
## 🧮 Аналитика и окна
df.with_columns([
pl.col("score").rank("dense").over("group").alias("rank"),
pl.col("score").mean().over("group").alias("group_avg")
])
🧱 Структуры, списки, explode
df = pl.DataFrame({
"id": [1, 2],
"tags": [["a", "b"], ["c"]]
})
df.explode("tags")
• Работа с вложенными списками:
df.select(pl.col("tags").list.lengths())
🧪 Полезные фичи
• Проверка типов:
df.schema
df.dtypes
• Проверка на null:
df.filter(pl.col("score").is_null())
• Заполнение:
df.fill_null("forward")
• Выбор n лучших:
df.sort("score", descending=True).head(5)
📦 Советы и best practices
• Используй lazy() для производительности.
• Избегай .apply() — если можешь, используй pl.col().map_elements() или векторные выражения.
• Сохраняй schema — удобно при пайплайнах данных.
• @pl.api.register_expr_namespace("yourns") — добавляй кастомные методы как namespace.
✅ Polars: минимализм, скорость, безопасность.
@python_be1
Polars ≠ Pandas. Это колоночный движок, вдохновлённый Rust и SQL. Никаких SettingWithCopyWarning — всё иммутабельно и параллелится.
🚀 Быстрый старт
import polars as pl
df = pl.DataFrame({
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"score": [95, 85, 100]
})
📊 Выборка и фильтрация
df.filter(pl.col("score") > 90)
df.select(pl.col("name").str.lengths())
df[df["id"] == 2]
• Комбинированные условия:
df.filter((pl.col("score") > 80) & (pl.col("name").str.contains("A")))
---
## ⚙ Трансформации
• Вычисление новых колонок:
df.with_columns([
(pl.col("score") / 100).alias("percent"),
pl.col("name").str.to_uppercase().alias("name_upper")
])
• Удаление/переименование:
df.drop("id").rename({"name": "username"})
• apply() — только если нельзя обойтись иначе:
df.with_columns(
pl.col("score").map_elements(lambda x: x * 2).alias("doubled")
)
🧠 Группировка и агрегаты
df.groupby("name").agg([
pl.col("score").mean().alias("avg_score"),
pl.count()
])
• Агрегация с кастомной функцией:
df.groupby("name").agg(
(pl.col("score") ** 2).mean().sqrt().alias("rms")
)
---
## 🪄 Ленивая обработка (LazyFrame)
lf = df.lazy()
result = (
lf
.filter(pl.col("score") > 90)
.with_columns(pl.col("score").log().alias("log_score"))
.sort("log_score", descending=True)
.collect()
)
✅ Всё оптимизируется *до выполнения* — pushdown, predicate folding, projection pruning.
🔥 Joins
df1.join(df2, on="id", how="inner")
Варианты: "inner", "left", "outer", "cross", "semi", "anti"
📂 Работа с файлами
pl.read_csv("data.csv")
df.write_parquet("out.parquet")
pl.read_json("file.json", json_lines=True)
Ленивая загрузка:
pl.read_parquet("big.parquet", use_pyarrow=True).lazy()
---
## 🧮 Аналитика и окна
df.with_columns([
pl.col("score").rank("dense").over("group").alias("rank"),
pl.col("score").mean().over("group").alias("group_avg")
])
🧱 Структуры, списки, explode
df = pl.DataFrame({
"id": [1, 2],
"tags": [["a", "b"], ["c"]]
})
df.explode("tags")
• Работа с вложенными списками:
df.select(pl.col("tags").list.lengths())
🧪 Полезные фичи
• Проверка типов:
df.schema
df.dtypes
• Проверка на null:
df.filter(pl.col("score").is_null())
• Заполнение:
df.fill_null("forward")
• Выбор n лучших:
df.sort("score", descending=True).head(5)
📦 Советы и best practices
• Используй lazy() для производительности.
• Избегай .apply() — если можешь, используй pl.col().map_elements() или векторные выражения.
• Сохраняй schema — удобно при пайплайнах данных.
• @pl.api.register_expr_namespace("yourns") — добавляй кастомные методы как namespace.
✅ Polars: минимализм, скорость, безопасность.
@python_be1
Как оперативно заменить подстроку в строке с помощью сторонней библиотеки?
Библиотека flashtext предоставляет простой способ замены подстрок в строках. Вам нужно всего лишь указать, какие подстроки заменять, с помощью функции add_keyword(), а затем вызвать метод replace_keywords() у объекта-процессора.
@python_be1
Библиотека flashtext предоставляет простой способ замены подстрок в строках. Вам нужно всего лишь указать, какие подстроки заменять, с помощью функции add_keyword(), а затем вызвать метод replace_keywords() у объекта-процессора.
@python_be1
🖥 Хитрая задача на Python для продвинутых: словарь, который работает как список
Представь структуру данных, которая:
• работает как `dict` — доступ по ключу
• работает как `list` — доступ по индексу
• сохраняет порядок вставки
• поддерживает `.index(key)` и `.key_at(i)`
📌 Задача: Реализуй класс `IndexedDict`, который делает всё это.
🔍 Пример использования:
```
d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30
print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2
for k in d:
print(k, d[k]) # перебор по ключам
```
⚠️ Подвох:
• Просто наследовать `dict` не получится — `d[0]` будет интерпретироваться как ключ, а не индекс
• Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать `__iter__`, `__getitem__`, `__len__` и др.
✅ Решение:
[спойлер: ```python
from][спойлер: collections.abc][спойлер: import MutableMapping
class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []
def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]
def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value
def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]
def __iter__(self):
return iter(self._keys)
def __len__(self):
return len(self._data)
def index(self, key):
return self._keys.index(key)
def key_at(self, idx):
return self._keys[idx]
```
📈 Зачем это нужно:
• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных
Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬]
@python_be1
Представь структуру данных, которая:
• работает как `dict` — доступ по ключу
• работает как `list` — доступ по индексу
• сохраняет порядок вставки
• поддерживает `.index(key)` и `.key_at(i)`
📌 Задача: Реализуй класс `IndexedDict`, который делает всё это.
🔍 Пример использования:
```
d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30
print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2
for k in d:
print(k, d[k]) # перебор по ключам
```
⚠️ Подвох:
• Просто наследовать `dict` не получится — `d[0]` будет интерпретироваться как ключ, а не индекс
• Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать `__iter__`, `__getitem__`, `__len__` и др.
✅ Решение:
[спойлер: ```python
from][спойлер: collections.abc][спойлер: import MutableMapping
class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []
def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]
def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value
def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]
def __iter__(self):
return iter(self._keys)
def __len__(self):
return len(self._data)
def index(self, key):
return self._keys.index(key)
def key_at(self, idx):
return self._keys[idx]
```
📈 Зачем это нужно:
• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных
Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬]
@python_be1
🎙️ Voice Extractor — мощный open-source инструмент для извлечения и разметки голоса из многофайлового аудио
Если у тебя есть подкасты, интервью или многоголосые записи — этот инструмент выделит каждого говорящего и превратит всё в чистые датасеты для TTS или анализа.
🔧 Что умеет:
• Диаризация: разделение голосов с помощью Pyannote
• Удаление перекрытий: исключает участки с одновременной речью
• Транскрипция: генерирует текст аудио
• Изоляция голоса: можно вырезать только одного говорящего
• Многоязычность: работает не только с английским
🎯 Зачем использовать:
• Создание кастомных TTS-моделей
• Анализ подкастов, лекций и интервью
• Построение голосовых ассистентов
🚀 Как запустить:
```
git clone https://github.com/ReisCook/Voice_Extractor.git
cd Voice_Extractor
pip install -r requirements.txt
python extract_voice.py —file_path your_audio_file.mp3
```
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@python_be1
Если у тебя есть подкасты, интервью или многоголосые записи — этот инструмент выделит каждого говорящего и превратит всё в чистые датасеты для TTS или анализа.
🔧 Что умеет:
• Диаризация: разделение голосов с помощью Pyannote
• Удаление перекрытий: исключает участки с одновременной речью
• Транскрипция: генерирует текст аудио
• Изоляция голоса: можно вырезать только одного говорящего
• Многоязычность: работает не только с английским
🎯 Зачем использовать:
• Создание кастомных TTS-моделей
• Анализ подкастов, лекций и интервью
• Построение голосовых ассистентов
🚀 Как запустить:
```
git clone https://github.com/ReisCook/Voice_Extractor.git
cd Voice_Extractor
pip install -r requirements.txt
python extract_voice.py —file_path your_audio_file.mp3
```
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@python_be1
🐍 Python-библиотеки для Linux-администраторов
Набор must-have инструментов, которые помогут автоматизировать системные задачи, управлять файлами, процессами и сетью:
🔸 `os` — работа с файловой системой, путями, переменными окружения
https://docs.python.org/3/library/os.html
🔸 `subprocess` — запуск внешних команд и управление ими
https://docs.python.org/3/library/subprocess.html
🔸 `psutil` — мониторинг процессов, ресурсов, дисков, сети
https://pypi.org/project/psutil/
🔸 `platform` — информация об ОС, архитектуре, версии Python
https://docs.python.org/3/library/platform.html
🔸 `socket` — сетевые соединения и сокеты
https://docs.python.org/3/library/socket.html
🔸 `pwd` — доступ к информации о пользователях Unix
https://docs.python.org/3/library/pwd.html
🔸 `pathlib` — удобная работа с путями в ООП-стиле
https://docs.python.org/3/library/pathlib.html
🔸 `shutil` — копирование, удаление, архивация файлов и директорий
https://docs.python.org/3/library/shutil.html
🔸 `tarfile` — создание и извлечение `.tar`-архивов
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@python_be1
Набор must-have инструментов, которые помогут автоматизировать системные задачи, управлять файлами, процессами и сетью:
🔸 `os` — работа с файловой системой, путями, переменными окружения
https://docs.python.org/3/library/os.html
🔸 `subprocess` — запуск внешних команд и управление ими
https://docs.python.org/3/library/subprocess.html
🔸 `psutil` — мониторинг процессов, ресурсов, дисков, сети
https://pypi.org/project/psutil/
🔸 `platform` — информация об ОС, архитектуре, версии Python
https://docs.python.org/3/library/platform.html
🔸 `socket` — сетевые соединения и сокеты
https://docs.python.org/3/library/socket.html
🔸 `pwd` — доступ к информации о пользователях Unix
https://docs.python.org/3/library/pwd.html
🔸 `pathlib` — удобная работа с путями в ООП-стиле
https://docs.python.org/3/library/pathlib.html
🔸 `shutil` — копирование, удаление, архивация файлов и директорий
https://docs.python.org/3/library/shutil.html
🔸 `tarfile` — создание и извлечение `.tar`-архивов
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Resemble AI открыли исходный код Chatterbox — передовой модели клонирования голоса нового поколения.
Chatterbox объединяет синтез речи (TTS) и voice conversion, позволяя не только генерировать, но и трансформировать голос.
📊 В слепом тестировании 63,75% слушателей выбрали Chatterbox вместо ElevenLabs.
⚡️ Модель распространяется бесплатно и с открытым исходным кодом под MIT-лицензией.
💻 Установка:
pip install chatterbox-tts
🔗 Полезные ссылки:
Демо-примеры: https://resemble-ai.github.io/chatterbox_demopage/
GitHub: https://github.com/resemble-ai/chatterbox
Hugging Face: https://huggingface.co/spaces/ResembleAI/Chatterbox
Статистика: https://podonos.com/resembleai/chatterbox
Chatterbox — альтернатива, которая звучит лучше, чем коммерческие аналоги.
@python_be1
Chatterbox объединяет синтез речи (TTS) и voice conversion, позволяя не только генерировать, но и трансформировать голос.
📊 В слепом тестировании 63,75% слушателей выбрали Chatterbox вместо ElevenLabs.
⚡️ Модель распространяется бесплатно и с открытым исходным кодом под MIT-лицензией.
💻 Установка:
pip install chatterbox-tts
🔗 Полезные ссылки:
Демо-примеры: https://resemble-ai.github.io/chatterbox_demopage/
GitHub: https://github.com/resemble-ai/chatterbox
Hugging Face: https://huggingface.co/spaces/ResembleAI/Chatterbox
Статистика: https://podonos.com/resembleai/chatterbox
Chatterbox — альтернатива, которая звучит лучше, чем коммерческие аналоги.
@python_be1
В мире автоматизированного тестирования быстрое выполнение тестов — это залог успеха. Когда автотесты начинают затягиваться, страдают все: CI тормозит, разработчики теряют терпение, а вместо решения багов ты сталкиваешься с проблемами производительности.
Команда разработчиков задала себе важный вопрос: «Почему один и тот же тест проходит дольше утром, чем вечером?» В ответ на это возникла идея создания простой утилиты.
Так появилась Slowpoke Finder — маленькая CLI-утилита и библиотека для анализа логов автоматизации. Она помогает выявить замедленные шаги, просто обрабатывая JSON или HAR файлы. Удобно и без лишних сложностей!
👉 Читать далее
#тестирование #автотесты #Python #разработка
Команда разработчиков задала себе важный вопрос: «Почему один и тот же тест проходит дольше утром, чем вечером?» В ответ на это возникла идея создания простой утилиты.
Так появилась Slowpoke Finder — маленькая CLI-утилита и библиотека для анализа логов автоматизации. Она помогает выявить замедленные шаги, просто обрабатывая JSON или HAR файлы. Удобно и без лишних сложностей!
👉 Читать далее
#тестирование #автотесты #Python #разработка
🚁 В мире технологий появился новый игрок — автономная платформа дрона «Шмель», созданная для обслуживания линий электропередач. Основные задачи включают проверку тока, мониторинг состояния ЛЭП и установку ремонтных зажимов, что требует высокой точности и надежности без физического контакта с проводами.
🛠️ Платформа оснащена современными аппаратными компонентами: полётный контроллер, сервоприводы и датчики. Программное обеспечение разработано на базе фреймворка Clover и OpenCV, что обеспечивает навигацию с помощью ArUco-маркеров.
🧩 Статья представляет эволюцию управления полётом с использованием PID-регуляторов и текущие вызовы, такие как обеспечение автономности. Потенциал дронов в автоматизации обслуживания ЛЭП обещает значительные улучшения для будущего.
👉 Читать далее
#дроны #технологии #автоматизация #Python
🛠️ Платформа оснащена современными аппаратными компонентами: полётный контроллер, сервоприводы и датчики. Программное обеспечение разработано на базе фреймворка Clover и OpenCV, что обеспечивает навигацию с помощью ArUco-маркеров.
🧩 Статья представляет эволюцию управления полётом с использованием PID-регуляторов и текущие вызовы, такие как обеспечение автономности. Потенциал дронов в автоматизации обслуживания ЛЭП обещает значительные улучшения для будущего.
👉 Читать далее
#дроны #технологии #автоматизация #Python
📢 Привет всем!
Если вы интересуетесь обработкой данных, то новый материал от Василия из Х5 Tech точно вас заинтересует. Он делится опытом работы с алгоритмом Slowly Changing Dimensions-2 (SCD-2) на PySpark, который позволяет эффективно управлять хранением данных, снижая их дублирование.
В статье рассматриваются не только основные принципы работы с SCD-2 таблицами, но и методы нахождения изменений в данных, даже когда отсутствуют соответствующие поля. Также Василий расскажет, как получать исторические срезы на нужную дату.
Не пропустите возможность узнать что-то новое и полезное для вашей работы! Читать далее
#Python #DataEngineering #PySpark #Habr
Если вы интересуетесь обработкой данных, то новый материал от Василия из Х5 Tech точно вас заинтересует. Он делится опытом работы с алгоритмом Slowly Changing Dimensions-2 (SCD-2) на PySpark, который позволяет эффективно управлять хранением данных, снижая их дублирование.
В статье рассматриваются не только основные принципы работы с SCD-2 таблицами, но и методы нахождения изменений в данных, даже когда отсутствуют соответствующие поля. Также Василий расскажет, как получать исторические срезы на нужную дату.
Не пропустите возможность узнать что-то новое и полезное для вашей работы! Читать далее
#Python #DataEngineering #PySpark #Habr
Хабр
Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2
Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных, а в 2024 году присоединился к одной из продуктовых команд в Х5 Tech. За это время успел познакомиться с несколькими...
Ошибка — неотъемлемая часть программирования, и от отношения к ней зависит, станет ли человек хорошим разработчиком. К сожалению, многие начинающие программисты, особенно дети, часто испытывают фрустрацию из-за багов.
Мы внедрили метод «Пяти почему» из Lean-методологии в обучение программированию детей. Этот подход значительно изменил отношение учеников к ошибкам и повысил качество их кода.
Теперь каждый баг рассматривается как шаг к улучшению, а не как повод для отказа от программирования. Погрузитесь в подробности и узнайте, как этот метод помогает молодым разработчикам!
👉 Читать далее
#Программирование #Обучение #Методы #Python
Мы внедрили метод «Пяти почему» из Lean-методологии в обучение программированию детей. Этот подход значительно изменил отношение учеников к ошибкам и повысил качество их кода.
Теперь каждый баг рассматривается как шаг к улучшению, а не как повод для отказа от программирования. Погрузитесь в подробности и узнайте, как этот метод помогает молодым разработчикам!
👉 Читать далее
#Программирование #Обучение #Методы #Python
Хабр
Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых
Большинство программистов согласятся: от отношения к ошибкам зависит, станет ли человек хорошим разработчиком. В нашей практике обучения детей программированию мы столкнулись с фрустрацией, которая...
📢 Автоматизированные тесты могут порой заметно замедляться, и это вызывает негативные последствия для всех участников процесса разработки. CI становится медленнее, разработчики начинают сомневаться в результатах, а вместо поиска багов приходится решать проблемы с таймингами.
На фоне этих проблем в команде возникал вопрос: «Почему одни и те же сценарии могут выполняться по-разному в разное время?» В ответ на это была создана удобная утилита.
Slowpoke Finder — это простая CLI-утилита и библиотека, позволяющая анализировать логи автотестов. Программа принимает JSON или HAR файлы, анализирует их и выявляет шаги, которые замедляют тесты.
Эта утилита не требует сложной интеграции, что делает её доступной и удобной для использования.
👉 Читать далее
#Python #Автотесты #SlowpokeFinder #Разработка
На фоне этих проблем в команде возникал вопрос: «Почему одни и те же сценарии могут выполняться по-разному в разное время?» В ответ на это была создана удобная утилита.
Slowpoke Finder — это простая CLI-утилита и библиотека, позволяющая анализировать логи автотестов. Программа принимает JSON или HAR файлы, анализирует их и выявляет шаги, которые замедляют тесты.
Эта утилита не требует сложной интеграции, что делает её доступной и удобной для использования.
👉 Читать далее
#Python #Автотесты #SlowpokeFinder #Разработка
Хабр
Slowpoke Finder: как я сделала CLI-инструмент для анализа медленных шагов в автотестах
Когда всё тормозит Когда автотесты начинают тянуться как улитка, страдают все. CI медлит, разработчики косо смотрят на отчёты, а я вместо багов натыкаюсь на тайминги. Особенно это бесит в UI-тестах -...
Ученые из Техасского университета в Остине разработали новый метод кодирования информации в синтетических молекулах. Этот подход может стать более эффективной альтернативой традиционным биомолекулам для хранения данных.
ДНК, безусловно, рассматривается как идеальный носитель информации. Однако доступ к данным на молекулах остается сложным и дорогостоящим процессом.
Благодаря новому методу, процесс записи и извлечения данных может стать более доступным. Ученые обсудят детали своего исследования и практические применения на предстоящем докладе.
Подробнее о разработке можно узнать в статье. Читать дальше →
#Python #инновации #наука #хранениеданных
Подписывайтесь на мой канал @pythonbe1!
ДНК, безусловно, рассматривается как идеальный носитель информации. Однако доступ к данным на молекулах остается сложным и дорогостоящим процессом.
Благодаря новому методу, процесс записи и извлечения данных может стать более доступным. Ученые обсудят детали своего исследования и практические применения на предстоящем докладе.
Подробнее о разработке можно узнать в статье. Читать дальше →
#Python #инновации #наука #хранениеданных
Подписывайтесь на мой канал @pythonbe1!
Хабр
Молекулярное шифрование: полимерный пароль
Неустанно растущий объем информации требует создания новых носителей. Данная потребность уже давно привела к тому, что ученые с особым интересом рассматривают ДНК в качестве идеального (по мнению...
🎯 5 ИИ-проектов, которые ты можешь собрать за выходные
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд (https://uproger.com/5-ai-proektov-kotorye-ty-mozhesh-sobrat-za-vyhodnye-na-python/)— и добавь проекты в резюме: «AI developer: checked»
@python_be1
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд (https://uproger.com/5-ai-proektov-kotorye-ty-mozhesh-sobrat-za-vyhodnye-na-python/)— и добавь проекты в резюме: «AI developer: checked»
@python_be1
Работа с файлами в Python действительно кажется простой на первый взгляд — всего лишь используем `open`, `read` и `write`. Однако в реальности, особенно в системах с высокими требованиями к отказоустойчивости и стабильности, могут возникнуть неожиданные трудности.
За привычными строками кода зачастую кроется множество проблем, касающихся обработки ошибок, оптимизации и логирования. Правильное использование этих функций требует внимательного подхода и учета множества нюансов.
Если вам интересно узнать больше о сложностях работы с файлами в Python и о том, как их преодолевать, не пропустите статью по ссылке ниже!
[Читать далее](https://habr.com/ru/articles/908154/?utm_campaign=908154&utm_source=habrahabr&utm_medium=rss#habracut)
#Python #Программирование #Файлы #Кодирование
Подписывайтесь на мой канал @python_be1.
За привычными строками кода зачастую кроется множество проблем, касающихся обработки ошибок, оптимизации и логирования. Правильное использование этих функций требует внимательного подхода и учета множества нюансов.
Если вам интересно узнать больше о сложностях работы с файлами в Python и о том, как их преодолевать, не пропустите статью по ссылке ниже!
[Читать далее](https://habr.com/ru/articles/908154/?utm_campaign=908154&utm_source=habrahabr&utm_medium=rss#habracut)
#Python #Программирование #Файлы #Кодирование
Подписывайтесь на мой канал @python_be1.
Хабр
Подводные камни при работе с файлами в Linux с примерами на Python
Если от вашей системы требуется надёжность, отказоустойчивость и детерминированность, знания системных механизмов — не роскошь, а необходимость. Работа с файлами в Python кажется простой — open , read...