Обновить
618.82

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга

Доброго времени суток, сообщество Хабра!

На днях вышла статья, где мной проводился анализ задач через API Codewars. Для тех, кто не успел ознакомиться, можно пройти по ссылке: https://habr.com/ru/articles/783326/

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

Поэтому сюда прикрепляю ссылку GitHub репозитория с анализом статистических данных CodeWars: https://github.com/Dess1996/CodeWarsStat/blob/main/Katas.ipynb

Благодарю всех, кто принял участие в опросе.

До новых встреч!

Теги:
Рейтинг0
Комментарии0

Состоялся релиз статического анализатора Mypy 1.8 (pypi.org). исходные код проекта выложен на GitHub под открытой лицензией MIT.

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

Mypy — статический анализатор типов для Python, который позволяет находить ошибки несоответствия типов в коде. Впервые инструмент Mypy показал Юкка Лехтосало на PyCon в октябре 2012 года. В декабре 2012 года вышел первый релиз. В 2016 году инструмент поддержал создатель Python Гвидо ван Россум. В феврале 2023 года вышла версия 1.0, а в марте 2023 — версия 1.1.1.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_14 (Часть_1)

Какие подходы могут помочь модели сохранить стабильность популяции при изменении данных?

  1. Кросс-валидация (Cross-Validation): Кросс-валидация позволяет оценить производительность модели на разных подмножествах данных. Например, метод k-fold cross-validation разбивает данные на k подмножеств, называемых фолдами. Модель обучается на k-1 фолдах и оценивается на оставшемся фолде. Этот процесс повторяется k раз, каждый раз используя разные фолды. Таким образом, модель оценивается на различных подмножествах данных, что помогает выявить ее стабильность популяции.

  2. Стратифицированная выборка (Stratified Sampling): При формировании обучающей и тестовой выборок можно использовать стратифицированный подход. Это означает, что при разделении данных на выборки будут сохранены пропорции классов или распределений признаков. Такой подход помогает уменьшить возможное искажение данных при изменении популяции.

    t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Задача: найти среднее значение списка чисел 

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

Решение задачи может выглядеть так: 

def find_average(numbers): 

    # Проверяем, что список не пустой, чтобы избежать деления на ноль 

    if len(numbers) == 0: 

        return 0  # Если список пустой, возвращаем 0

    # Вычисляем сумму всех чисел в списке 

    total = sum(numbers) 

    # Вычисляем среднее значение 

    average = total / len(numbers) 

return average

Пример использования:

numbers = [10, 20, 30, 40, 50] 

avg = find_average(numbers) 

print(avg)  # Вывод: 30.0 

Первым шагом в коде выше проходит проверка, что список numbers не пустой — это позволяет избежать деления на ноль и ошибок. Если список не пустой, вычисляем сумму всех чисел в списке с помощью функции sum(). Затем делим эту сумму на количество чисел в списке, чтобы найти среднее значение, и возвращаем его.

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

typing.Annotated

Annotated из модуля typing в Python предназначен для добавления метаданных к аннотации. Метаданные, добавленные с помощью Annotated, могут быть использованы инструментами статического анализа или во время выполнения. Во время выполнения метаданные хранятся в атрибуте __metadata__.

from typing import Annotated 

# Синтаксис: Annotated[тип_данных, метаданные]
def say_hello(name: Annotated[str, "this is just metadata"]) -> str:
    return f"Hello {name}"

Логика обработка метаданных зависит от фреймворка или библиотек, в которых используется Annotated. Если логики для обработки метаданных нет, то метаданные игнорируются.

Например, Annotated используется в Pydantic:

from typing import Annotated
from pydantic import Field, TypeAdapter

# Функция Field используется для настройки и добавления метаданных 
# к полям моделей. Field(gt=0) - значит greater than т.е. больше чем 0
PositiveInt = Annotated[int, Field(gt=0)]

# TypeAdapter предоставляет часть функциональности методов экземпляра
# BaseModel в т.ч. валидацию с использованием метаданных из Annotated
ta = TypeAdapter(PositiveInt)


print(ta.validate_python(1))
#> 1
print(ta.validate_python(-1))
#> pydantic_core._pydantic_core.ValidationError:

В первом случае вернёт 1, во втором ошибку валидации т.к. значение должно быть > 0.

Также Annotated используется в FastAPI.

Теги:
Рейтинг0
Комментарии0

Если ты готов участвовать в разработке цифрового ассистента Госуслуг и хочешь узнать всё о Роботе Максе изнутри, приходи на One Day Offer!

Прямо сейчас мы ищем:
— Разработчиков Python
— Data-scientist
— Product Owner
— Продуктовых аналитиков
— Инженеров по тестированию

Когда и где?
7 декабря в онлайне: без лишних собесов, тестовых заданий и бюрократии

Как попасть?

  1. Оставь заявку на участие

  2. Пройди предварительное онлайн-интервью и получи приглашение на ивент

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

Узнать требования к кандидатам и подать заявку

❗️Последний день подачи заявки на участие — 5 декабря

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_9

?Вопрос_9: В чем разница между Rapids, Vaex, Pandas, Polars, Modin, Dask они же все для анализа данных ?

✔️Ответ:

  1. Pandas предоставляет гибкие структуры данных, такие как DataFrame, и мощные инструменты для манипуляции, фильтрации, агрегации и анализа данных. Pandas обычно используется для работы с небольшими и средними объемами данных, которые могут поместиться в оперативную память одного компьютера;

  2. Dask позволяет обрабатывать данные, превышающие объем доступной оперативной памяти, с использованием распределенных вычислений. Dask предоставляет абстракции, такие как DataFrame и Array, которые подобны структурам данных из Pandas и NumPyx;

  3. Polars обладает высокой производительностью благодаря использованию Rust в своей реализации, а также предлагает возможности параллельной обработки данных. Она может работать с большими объемами данных и поддерживает некоторые распределенные вычисления;

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

  5. Modin предоставляет интерфейс, совместимый с Pandas, но с оптимизированной производительностью. Она использует различные движки обратной совместимости, такие как Dask и Ray, для распределенных и параллельных вычислений.

    https://t.me/DenoiseLAB

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Доброе время суток.

Решил с Вами поделиться скриптами, написанные на Python, для скачивания различных шоу\сериалов\фильмов с онлайн кинотеатров.

Делал для себя, не обессудьте)

Пока готовы скрипты для телеканала Пятница (https://friday.ru/) и ТНТ-Премьер (https://premier.one/)

Для ТНТ-премьер есть возможность использовать свою платную подписку

Используется yt-dlp, ffmpeg и Python (pycharm в частности)

Если нужны ещё сайты\кинотеатры - пишите, будем искать как скачивать.

Последние версии файлов находятся https://github.com/tas-unn/download_online/

Теги:
Рейтинг0
Комментарии1

LofiTray - любая онлайн-трансляция в фоновом режиме в Вашей панели задач!

Для нетерпеливых: инструкция ниже, а так же на гитхабе проекта

Предыстория:

Привет Хабр! На днях я лично столкнулся с проблемой: для комфортной работы люблю включать известный стрим на Lofi girl и работать под фоновую музыку, но каждый раз открывать его в браузере, занимать им лишнюю вкладку и занимать немало ресурсов ради фоновой вкладки.

Так родилась идея для проекта и несколько месяцев не доходили руки. На прошлой неделе меня угораздило приболеть и освободившиеся 3 вечера я посветил LofiTray (tray - так обычной называют значки на панели задач)

Что это такое вообще?

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

А это не вирус?

- Нет, не вирус. Для всеобщего спокойствия, проверил через VirusTotal. Можете проверить установщик/распакованную программу (лежит в папке dist в репозитории), да хоть сам проект с гитхаба.

Как скачать?

- По кнопке в инструкции на ГитХабе. Продублирую эти 2 пункта здесь:

  1. Если у Вас не установлен VLC media playerустановите его перед загрузкой LofiTray. С помощью API этого плеера программа воспроизводит трансляцию в фоновом режиме

  2. Скачайте и запустите установщик LofiTray ?скачать?

В ближайших планах починить отображение ошибок в windows 11. А в дальнейших - добавить полноценное gui-меню, так как уже есть запросы от друзей

Такие вот дела

Теги:
Всего голосов 14: ↑14 и ↓0+14
Комментарии6

Сегодня в 19:00 — Selectel Python Meetup. Три уровня погружения: процессы под капотом, архитектура кода, развитие языка

Включайте уведомление на YouTube, чтобы не пропустить начало.

Темы докладов

Мультипроцессность и сбор метрик в Python: как построить мониторинг без сюрпризов

Заносим микросервисы и Kubernetes в облако

Такое ли светлое будущее у Python?

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

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Релиз Wunjo AI 1.5.5. Что нового?

  • Добавлено клонирование голоса на русский язык.

  • Оптимизация анимации лица, сокрытие не нужных элементов, исправление ошибок работы с gif.

  • Улучшено отображение логов в консоли.

  • Индикатор занимаемого места на диске для результатов синтеза речи и дипфейков.

Дата выхода: 23.09.23.

Видео всех возможностей проекта с открытым исходным кодом для создания дипфейков, синтеза и клонирования речи.

Теги:
Рейтинг0
Комментарии0

Вебинар «Открытое собеседование на джуниор Python-разработчика»

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

→ Бесплатно, 15 сентября 19:00 по Москве

Вебинар будет полезен:

  • Всем, кто интересуется программированием, но пока не определился с выбором профессии;

  • Начинающим Python-разработчикам;

  • Тем, кто недавно сам стал нанимающим менеджером.

Спикеры:

  • Антон Артиков, Middle Python developer в «Тензоре», выпускник курса «Мидл Python-разработчик» в Практикуме;

  • Константин Шперлинг, педагог по основам программирования, выпускник курса «Python-разработчик» в Практикуме;

  • Наташа Павлова, Python Team Lead, выпускница курса «Мидл Python-разработчик» в Практикуме.

Вебинар продлится 1,5 часа. Мы напомним о событии за час и за 15 минут, пришлем ссылку на вебинар, а после отправим полную запись.

→ Зарегистрироваться

Теги:
Рейтинг0
Комментарии0

Доступен выпуск проекта RustPython 0.3, развивающего интерпретатор языка программирования Python, написанный на языке Rust. RustPython нацелен на обеспечение совместимости с CPython 3.11 и более новыми выпусками. Проект основал Shing Lyu, один из разработчиков движка Servo и участник перевода CSS-движка Firefox на компоненты, написанные на языке Rust. Для оценки текущего состояния разработки можно использовать web-интерфейс с интерпретатором RustPython, скомпилированным в WebAssembly. Код распространяется под лицензией MIT.

RustPython состоит из парсера кода на Python в абстрактное синтаксическое дерево (AST), компилятора AST в байткод и виртуальной машины для выполнения байткода. Для ускорения выполнения предоставляется начальная реализация JIT-компилятора, преобразующего python-функции в машинный код. Поддерживается компиляция RustPython в форму универсального WASI-модуля на WebAssembly, который может запускаться в различных операционных системах.

Проектом также предоставляются средства для интеграции кода на языке Python в проекты на языке Rust, без применения биндингов на основе CPython - RustPython позволяет встраивать Python-конструкции непосредственно в код на языке Rust и использовать Python в качестве языка скриптования в приложениях. Из проектов, уже использующих RustPython, отмечаются СУБД GreptimeDB, игровой движок pyckitup, игра Robot Rumble и linter Ruff.

Источник: OpenNET.


Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

Ближайшие события

Geeknote: консольный клиент для Evernote - заброшен, но вы можете стать его мантейнером.

Репозиторий: https://github.com/jeffkowalski/geeknote (уже не оригинальный, а форк, который тащили несколько лет)

Проект состоит в https://github.com/agarrharr/awesome-cli-apps#note-taking-and-lists

Оригинальный сайт http://web.archive.org/web/20180423130602/http://geeknote.me/

Оригинальное видео от первых авторов https://vimeo.com/45066341

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

Проект может быть интересен и полезен изучающим Python - тут вы сможете практиковаться и положить себе в CV что являетесь мантейнером этого проекта.

Я бы и сам, но нет на это времени :(

Только что добавил в Guru - это пользовательский репозиторий пакетов для Gentoo, как apt для Ubuntu или aur для Arch.

UPDATE я таки его форкнул https://github.com/vitaly-zdanevich/geeknote

Теги:
Рейтинг0
Комментарии1

Можно ли придумать что-то более классическое, чем решение задачи на удаление дубликатов из отсортированного массива? Не уверены, поэтому в новом выпуске «Алгоритмической качалки» взяли на разбор задачу №26 с Leetcode (Remove Duplicates from Sorted Array).

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

Рейтинг0
Комментарии3

А мы продолжаем тихой сапой захватывать ветку с постами в хабе Python и публикуем свежий выпуск «Алгоритмической качалки». В этот раз Альбина разбирала задачу под номером 58, которая звучит, как Length of Last Word. Кажется, что найти длину последнего слова в предложении довольно легко, но на самом деле пришлось приложить немного усилий, чтобы решить этот алгоритм.

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

Рейтинг0
Комментарии5

Доступен релиз Python-библиотеки для научных вычислений NumPy 1.25, ориентированной на работу с многомерными массивами и матрицами, а также предоставляющей большую коллекцию функций с реализацией различных алгоритмов, связанных с использованием матриц. NumPy является одной из наиболее востребованных библиотек, применяемых для научных расчётов. Код проекта написан на языке Python с применением оптимизаций на языке C и распространяется под лицензией BSD.

В новой версии:

  • Продолжена работа по улучшению обработки и продвижению новой инфраструктуры для класса dtype.

  • Увеличена скорость выполнения.

  • Началась подготовка к формированию выпуска NumPy 2.0.0, в котором будет прекращена поддержка некоторых устаревших возможностей. После достижения Python 3.12 стадии кандидата в релизы будет сформирован выпуск NumPy 1.26.0, после которого выйдет NumPy 2.0.0.

  • Обеспечено формирование wheel-пакетов на базе стандартной C-библиотеки musl.

  • Добавлена поддержка компилятора Fujitsu C/C++.

  • В функции einsum добавлена поддержка массивов объектов.

  • Добавлена поддержка умножения матриц по месту (без создания нового набора данных) с использованием оператора "@=".

Источник: OpenNET.

Всего голосов 6: ↑6 и ↓0+6
Комментарии0

В этот раз мы решили пойти по базовым задачам с Leetcode, поэтому взяли на разбор задачку Two sum, которая идет под номером 1 и имеет более 19 тысяч решений. Альбина разобрала на видео два варианта решения алгоритма — один, который первым приходит в голову, и второй, который более оптимален по скорости.

Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Сейчас разрабатываем большую платформу для планирования и прогнозирования спроса и продаж в ритейле. Под капотом платформы более 10 микросервисов: от серверов очередей, которые координируют взаимодействие различных частей системы, до непосредственно ML-движков, которые на основе больших входящих датасетов с историей продаж строят прогнозы на будущее. 


По мотивам одной из задач проекта опубликовали хорошую статью со сравнением скорости работы двух гигантов аналитики данных в Python: Pandas и Polars. Там подробно рассмотрели вопрос быстродействия этих двух решений в части работы с файлами больших объемов.

Один из интересных графиков:

Полная версия статьи — Битва медведей: Pandas против Polars

Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Чтобы проходить собеседования на «Ура» нужно уметь решать алгоритмы. А научиться решать их можно на сайте Leetcode, например. Ведущая Python-разработчица «Технократии» Альбина Альмухаметова показывает, как решить задачу Merge Two Sorted Lists, которую она дает на собеседованиях. Приятного просмотра!

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

Вклад авторов