Pythoner
Open in Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Show more6 774
Subscribers
-224 hours
-357 days
-5730 days
Posts Archive
6 772
🎆 Поздравляю всех подписчиков канала с новыми годом 🎆
Спасибо большое всем кто остался и следит за постами 🎊
6 772
🤖 Основы использования библиотеки OpenAI Gym
OpenAI Gym - это библиотека Python, которая предоставляет набор виртуальных сред для обучения агентов искусственного интеллекта. Среды Gym представляют собой упрощенные модели реальных задач, таких как игра в гольф, вождение автомобиля или управление роботом.
➡️Библиотека Gym может использоваться для обучения агентов искусственного интеллекта, таких как нейронные сети и генетические алгоритмы.
➡️Библиотека Gym может использоваться для исследования искусственного интеллекта, например, для разработки новых алгоритмов обучения агентов.
➡️Библиотека Gym может использоваться для визуализации действий агентов искусственного интеллекта.
OpenAI Gym предоставляет простой и интуитивно понятный интерфейс для взаимодействия с средами. Разработчики могут создавать агентов, определять действия, наблюдать состояния и получать обратную связь. Он также предлагает мощные инструменты для оценки и сравнения алгоритмов машинного обучения, позволяя разработчикам точно измерять производительность своих моделей.
P.S. Сам узнал про либу только сегодня, вдруг кому-то будет интересно и полезно. Делюсь😎💕
Для получения дополнительной информации о библиотеке OpenAI Gym вы можете посетить официальный сайт библиотеки:
6 772
Находим подстроку
Ключевое слово
in используется для проверки, содержится ли элемент в последовательности (список, кортеж, строка) или словаре.
Возвращает логическое значение True если элемент находится в последовательности/словаре, False если нет.
Что нужно знать про поиск подстроки в строке:
— Поиск чувствителен к регистру символов, т. е. различает заглавные и строчные буквы.
— Подстрока может состоять из одного символа.
— Поиск осуществляется слева направо по всей строке.
— Как только вхождение подстроки найдено — поиск прекращается.
— Можно искать все вхождения подстроки, обернув проверку в цикл.6 772
🐍collections.Mapping
collections.Mapping — это абстрактный базовый класс, который представляет отображение ключ-значение.
Он наследуется встроенными типами словарей, такими как dict, а также другими типами, которые реализуют схожее поведение, например OrderedDict.
Класс Mapping определяет интерфейс, общий для всех отображений ключ-значение, включая такие методы как keys(), values(), items() и другие.
Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.
🐍Например, Mapping часто используется вместе с isinstance или issubclass для проверки, является ли объект словарем. Также он полезен при написании функций, которым нужно принимать на вход отображения, но без привязки к конкретному типу как dict. Mapping гарантирует наличие основных методов словаря у переданного объекта.6 772
sets.isuperset()
Функция
sets.isuperset() позволяет проверить, является ли один set подмножеством другого.
Она принимает в качестве аргумента другой set и возвращает boolean значение — True если первый set содержит все элементы второго, и False в противном случае.
Это полезно при работе с множествами для проверки включения, или при проверке покрытия тестами.
Также это используется для проверки включения при работе с данными, чтобы убедиться, что один набор данных полностью покрывает другой по каким-либо критериям.6 772
🔎 Бинарный поиск на примере Python
Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных.
Бинарный поиск основан на принципе "разделяй и властвуй". Он работает следующим образом: сначала мы определяем середину списка и сравниваем искомый элемент с этой серединой. Если элемент равен середине, то поиск завершается успешно. Если элемент меньше середины, то мы продолжаем поиск в левой половине списка. Если элемент больше середины, то мы продолжаем поиск в правой половине списка. Повторяем эти шаги до тех пор, пока не найдем искомый элемент или пока список не будет пустым.
Вот пример реализации бинарного поиска на языке Python:
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# Пример использования
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
result = binary_search(arr, target)
if result != -1:
print("Элемент найден в позиции", result)
else:
print("Элемент не найден")
➕ Преимущества бинарного поиска
Бинарный поиск обладает несколькими преимуществами по сравнению с другими алгоритмами поиска. Во-первых, он имеет временную сложность O(log n), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных.6 772
Распаковка массива
Распаковка массива (iterable unpacking) — это удобный синтаксис для присваивания элементов
iterable объектов (списков, кортежей и т. д.) отдельным переменным.
Основные моменты, которые нужно знать:
— Распаковка производится с помощью звездочки *.
— Количество переменных должно соответствовать количеству элементов в iterable объекте, иначе возникнет ошибка.
— Можно использовать распаковку для пропуска элементов.
— Для сбора оставшихся элементов в список используется конструкция *others.
— Распаковка работает с вложенными списками.
— Формат распаковки можно использовать и при передаче аргументов в функции.6 772
Комплексные числа
Комплексные числа представлены типом данных
complex.
Комплексные числа можно создавать разными способами:
— Используя конструктор complex(a, b), где a — действительная часть, b — мнимая.
— Из вещественного числа, добавив к нему мнимую часть. Например, a + bj.
— Из строкового представления с помощью
complex(string).
С комплексными числами можно выполнять стандартные математические операции.
Для доступа к частям комплексного числа используются атрибуты real и imag.
Встроенные функции abs(), conjugate(), polar() позволяют получить модуль, сопряженное число и представление в тригонометрической форме.6 772
Модуль itertools в Python.
Это удивительный инструмент, который помогает работать с итерациями (повторениями) в Python более эффективно.
⚡️ Основные функции itertools:
1.
count(start, step): Генерирует бесконечную арифметическую прогрессию, начиная с start, с шагом step.
2. cycle(iterable): Бесконечно повторяет элементы из iterable.
3. chain(*iterables): Объединяет несколько итерируемых объектов в один последовательный поток.
4. zip_longest(*iterables, fillvalue=None):
Объединяет элементы из разных итерируемых объектов, даже если их длины различаются, то недостающее количество елментом заполнится заполнителем fillvalue.
🖥 Пример использования:
import itertools
# Создаем бесконечную последовательность с шагом 2
counter = itertools.count(start=10, step=2)
for _ in range(5):
print(next(counter)) # Выведет числа: 10, 12, 14, 16, 18
# Объединяем несколько списков в один последовательный поток
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
combined = itertools.chain(letters, numbers)
print(list(combined)) # Выведет: ['a', 'b', 'c', 1, 2, 3]
👾 Если вы хотите узнать больше о itertools, рекомендую обратиться к официальной документации.
Успешных экспериментов с итерациями в Python! 🐍 ✨
ставьте 👻 если хотите такое-же рабочее место как на фото6 772
erid: LjN8K5mGv
Привет!
Мы BAUM, российская IT-компания. Наша работа — создавать продвинутые системы хранения данных и прикладной искусственный интеллект. Недавно мы завели аккаунт, где делимся своим опытом, даём советы для успешной карьеры, рассказываем об интересных событиях из нашей жизни и, конечно, публикуем вакансии
Обещаем, что будет очень полезно и совсем не душно – подписывайся!
Реклама. ООО "СХД БАУМ". ИНН 9731024067.
6 772
rembg
Rembg — это библиотека для удаления фона из изображений.
Основные возможности:
— Автоматическое удаление фона с использованием нейросетей.
— Возможность точной настройки для сложных изображений .
— Поддержка изображений разных форматов — JPG, PNG, GIF и др.
Rembg использует модели глубокого обучения, предварительно обученные на больших наборах данных. Это позволяет достичь хороших результатов по удалению фона.
Также библиотека позволяет быстро интегрировать удаление фона в любые проекты на Python, где требуется обработка изображений. Простой API и хорошее качество делают эту библиотеку полезным инструментом для разных задач.
6 772
🔎Разбор
Оператор continue используется в циклах для пропуска итерации в цикле.
Таким образом, пока а<4, у нас просто происходит увеличение этой переменной, а из-за условия, итерация (и код ниже) скипаются.
Далее у нас а станет равно 4. У нас не сработает ни один из if'ов и мы добавим это число 4 в result.
Ну и на след. итерации а == 5, у нас сработает break, который принудительно завершит цикл в той же строке.
Ответ: 4
6 772
💻 Наглядная работа сессии, файлов cookie, JWT, токенов, SSO и OAuth 2.0 на одной диаграмме
Когда вы входите на веб-сайт, возникает необходимость управления вашей учетной записью. Вот как работают разные решения:
💬 Сессия — Сервер сохраняет вашу учетную запись и передает браузеру файл cookie с идентификатором сеанса. Это позволяет серверу отслеживать состояние входа в систему. Но файлы cookie не работают на разных устройствах.
💬 Токен — Ваша учетная запись закодирована в токене, отправленном в браузер. Браузер отправляет этот токен при будущих запросах аутентификации. Хранилище сеансов сервера не требуется. Но токены нуждаются в шифровании/дешифровании.
💬 JWT — Веб-токены JSON стандартизируют токены идентификации, используя цифровые подписи для обеспечения проверки подлинности. Подпись содержится в токене, поэтому сеанс сервера не требуется.
💬 SSO — Система единого входа использует центральную службу аутентификации. Это позволяет одному логину работать на нескольких сайтах.
💬 OAuth2 — Разрешает ограниченный доступ к вашим данным на одном сайте другому сайту без разглашения паролей.
💬 QR-код — Набирающий популярность метод аутентификации. Кодирует случайный токен в QR-код для входа в систему с мобильного устройства. Сканирование кода позволяет войти в систему без ввода пароля.
6 772
Sketch
Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ данных и строить прототипы моделей машинного обучения.
Основные возможности:
— Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия.
— Аппроксимация распределений и плотностей вероятности.
— Вычисление квантилей, сглаживания, гистограмм.
— Тестирование статистических гипотез, оценка p-value.
— Генерация случайных чисел из разных распределений.
Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для:
— Первичного анализа и визуализации данных.
— Статистических тестов в научных исследованиях.
— Построения прототипов моделей машинного обучения.
— Анализа пользовательских действий и событий.
— Симуляции процессов на основе статистических моделей.
6 772
Humanize
Humanize — это библиотека, которая предоставляет функции для более удобочитаемого форматирования данных.
Основные возможности:
— Преобразование чисел в удобочитаемые строки.
— Форматирование дат и времени в понятные фразы типа "3 дня назад".
— Преобразование идентификаторов в удобные для чтения слоги.
— Сокращение длинных строк по словам для компактного отображения.
Humanize полезен в приложениях, где нужно отображать данные в интерфейсе:
— Веб-приложения для отображения статистики.
— Информационные табло и панели мониторинга.
— Системы аналитики для визуализации данных.
— CLI-интерфейсы для вывода данных пользователю.
Использование Humanize позволяет сделать отображение данных более естественным и понятным для человека. Это улучшает user experience приложения.
Available now! Telegram Research 2025 — the year's key insights 
