Архив по категории ‘программизм’.

Обновил еще три статьи про Matplotlib

Обновил еще три статьи про Matplotlib

Всем привет!

Я продолжаю обновлять и дополнять свои старые статьи про Matplotlib, мощную библиотеку для Python, которая может рисовать различные типы графиков. В этот раз исправлению подверглись статьи:

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

 

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

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

Пример картинки из статьи:

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

Начал обновлять статьи про Matplotlib

Начал обновлять статьи про Matplotlib

Всем привет!

Как вы, надеюсь, помните, я когда-то писал (и надеюсь скоро продолжу) серию статей про работу с библиотекой Matplotlib, которая предназначена для построения графиков на языке Python. Эта серия началась очень давно, и с того момента библиотека Matpotlib сильно изменилась, как внешне, так и внутри. После глобального редизайна внешний вид графиков уже не соответствует тому, что показано на скриншотах, некоторые функции стали считаться устаревшими и были заменены новыми, часть из них даже уже была удалена из библиотеки, что сделало примеры из некоторых статей нерабочими, а часть из них еще работает, но выводят предупреждения.

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

Сегодня я обновил две статьи: самую первую статью про рисование простейших графиков вида y = f(x) (ссылка) и статью про рисование круговых графиков в виде пирога (ссылка). Вторая статья подверглась большему изменению. Во-первых, в новых версиях Matplotlib была исправлена проблема, из-за которой график по умолчанию рисовался не круглым, а эллиптическим, и соотношение сторон эллипса зависело от соотношения сторон окна, поэтому один из разделов стал не актуальным и я его удалил. А, во-вторых, с новым дизайном захотелось добавить пример, показывающий, как изменять цвета линий вокруг секторов в круговом графике.

Постепенно буду исправлять и другие статьи, а заодно себе написал план по новым статьям про Matplotlib.

Вторая часть статьи про создание Python bindings с помощью SIP

Вторая часть статьи про создание Python bindings с помощью SIP

Как и обещал в прошлом посте, сегодня выложил вторую часть статьи, посвященной созданию Python-обвязок (bindings) с помощью утилиты SIP. Во второй части речь идет о создании обвязки для объектно-ориентированных библиотек, написанных на C++, в которых фигурируют классы.

Ссылка на статью — Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 2

Новая статья в разделе про Python

Новая статья в разделе про Python

Всем привет!
Python — замечательный язык программирования, но иногда приходится работать с библиотеками, которые написаны на других языках программирования. Обычно это бывает, потому сторонние библиотеки решают нужные вам задачи, и не хочется изобретать велосипед, реализую то же самое на Python. Либо в более редких случаях, когда производительность вашего приложения упирается в особенности языка Python (все-таки интерпретируемые языки по скорости не сравнятся с компилируемыми), и часть кода приходится писать на C или C++.

Для решения такой задачи — использования библиотек, написанных на C/C++, из Python-приложения существует много решений. Одно из них — SIP. Эта утилита изначально разрабатывалась для создания Python-обвязки над такой монстроидальной библиотекой как Qt (получившаяся обвязка — PyQt). Я написал большую статью в двух частях про использование основы использования SIP для создания Python-обвязок над библиотеками. Сегодня я выложил первую часть — Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1.

Чуть позже выложу продолжение.

Доклад про оптимизацию методом роя частиц

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

По этой ссылке вы можете увидеть мой доклад (а заодно скачать презентацию), а также посмотреть обсуждение темы ввода новичков в проект (onboarding).

Видео своего доклада оставлю еще и здесь.

Optlib 0.3.0. Новая версия библиотеки для оптимизации на языке Rust

Optlib 0.3.0. Новая версия библиотеки для оптимизации на языке Rust

Как я уже писал, помимо проекта OutWiker, в последнее время я занялся проектом optlib, библиотекой на языке Rust с реализацией разных алгоритмов оптимизации. На данный момент в библиотеке реализованы генетический алгоритм и алгоритм роя частиц. На днях я выложил новую версию этой библиотеки под номером 0.3.0.

У библиотеки optlib есть документация, но в ближайшее время я собираюсь заняться написанием статей с более подробным описанием работы этой библиотеки. В этом посте я коротко расскажу о том, что появилось нового в версии 0.3.0.

Читать далее ‘Optlib 0.3.0. Новая версия библиотеки для оптимизации на языке Rust’ »

Статья «Использование библиотеки Matplotlib. Как делать анимированные графики»

Статья "Использование библиотеки Matplotlib. Как делать анимированные графики"

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

В новой версии статьи приводится четыре способа создания анимированных графиков.

Ссылка на статью — Использование библиотеки Matplotlib. Как делать анимированные графики.

Optlib. Реализация генетического алгоритма оптимизации на языке Rust

Optlib. Реализация генетического алгоритма оптимизации на языке Rust

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

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

Именно такую библиотеку я решил написать на Rust. Так появилась библиотека optlib. Ссылки на исходники и документацию:

На данный момент в этой библиотеке реализовал только генетический алгоритм, но зато со всеми возможностями, которые хотел. Точнее, там есть еще, что дополнить и улучшить, но в целом структура получилась достаточно гибкая. Генетический алгоритм с использованием библиотеки optlib собирается как из кубиков: алгоритм скрещивания берем этот, алгоритм мутации — тот и т.д.

Помимо документации я написал довольно большую статью про библиотеку optlib и генетический алгоритм, которую можно прочитать тут — Библиотека Optlib. Реализация генетического алгоритма оптимизации на Rust. Эту же статью я опубликовал на Хабре — https://habr.com/ru/post/448870/.

Я надеюсь, что я буду находить время на дальнейшие улучшения этой библиотеки, потому что в списке идей относительно этой библиотеки еще много пунктов.

Статья про создание exe-шников из python-скриптов

Написал большую статью про создание запускаемых файлов (.exe, если говорить про Windows) из скриптов на Python с помощью библиотеки cx_Freeze. Ссылка на статью — https://jenyay.net/Programming/Cxfreeze