<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Matplotlib on Łukasz Prokulski, Dane i Analizy</title><link>https://blog.prokulski.science/tags/matplotlib/</link><description>Recent content in Matplotlib on Łukasz Prokulski, Dane i Analizy</description><generator>Hugo</generator><language>pl-PL</language><lastBuildDate>Mon, 07 Sep 2026 15:00:00 +0000</lastBuildDate><atom:link href="https://blog.prokulski.science/tags/matplotlib/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM zwraca poprawny JSON i się myli. Plus: pathlib, benchmarki i marka osobista w IT</title><link>https://blog.prokulski.science/2026/09/07/llm-zwraca-poprawny-json-i-sie-myli-plus-pathlib-benchmarki-i-marka-osobista-w-it/</link><pubDate>Mon, 07 Sep 2026 15:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2026/09/07/llm-zwraca-poprawny-json-i-sie-myli-plus-pathlib-benchmarki-i-marka-osobista-w-it/</guid><description>&lt;p&gt;W tym wydaniu dużo o narzędziach, które już pewnie masz w stosie, ale rzadko trafia się dobry materiał tłumaczący ich działanie od środka. Są tu teksty o Airflow 3, dbt, Marquezie i formatach serializacji, a każdy z nich ma konkretną tezę, nie tylko opis funkcji.&lt;/p&gt;&#10;&lt;p&gt;jak migracja z legacy ETL do dbt wygląda krok po kroku, dlaczego Parquet eliminuje do 80% narzutu I/O w porównaniu z CSV, co Marquez robi z Twoim data lineage i jak integruje się z OpenLineage.&lt;/p&gt;</description></item><item><title>AI agenci, nudny backend i polskie głosy o architekturze hexagonalnej</title><link>https://blog.prokulski.science/2026/05/18/ai-agenci-nudny-backend-i-polskie-glosy-o-architekturze-hexagonalnej/</link><pubDate>Mon, 18 May 2026 15:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2026/05/18/ai-agenci-nudny-backend-i-polskie-glosy-o-architekturze-hexagonalnej/</guid><description>&lt;p&gt;W tym wydaniu obserwujemy wyraźny trend profesjonalizacji narzędzi AI oraz powrotu do sprawdzonych, &amp;ldquo;nudnych&amp;rdquo; technologii.&lt;/p&gt;&#10;&lt;p&gt;Analizujemy, jak agenci AI i modele LLM (Claude, ChatGPT) ewoluują w stronę praktycznych narzędzi do budowania skillów i automatycznego naprawiania testów, pokazujemy, dlaczego architekci coraz częściej rezygnują ze złożonych baz grafowych na rzecz sprawdzonych ontologii SQL, i tłumaczymy, dlaczego w backendzie prostota i standaryzacja wygrywają z niepotrzebną innowacyjnością.&lt;/p&gt;&#10;&lt;p&gt;W świecie Data Engineeringu skupiamy się na hybrydowym podejściu do analityki i optymalizacji kosztów.&lt;/p&gt;</description></item><item><title>Język polski najlepszy do promptowania?</title><link>https://blog.prokulski.science/2025/10/27/jezyk-polski-najlepszy-do-promptowania/</link><pubDate>Mon, 27 Oct 2025 15:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2025/10/27/jezyk-polski-najlepszy-do-promptowania/</guid><description>&lt;p&gt;W dzisiejszym wydaniu dominują tematy związane z infrastrukturą danych i narzędziami AI. Szczególnie polecam artykuł o benchmarku ONERULER – okazuje się, że język polski najlepiej radzi sobie z analizą długich kontekstów w modelach językowych!&lt;/p&gt;&#10;&lt;p&gt;Jeśli budujesz pipeline&amp;rsquo;y danych, znajdziesz praktyczne przewodniki po open table formats (Iceberg, Delta Lake), kompletnej konfiguracji Docker+Airflow+dbt+Postgres oraz wzorcach SQL w DuckDB. Dla zainteresowanych Kafką – materiały o wysokiej dostępności na GKE Autopilot i alternatywie w postaci BufStream z silniejszymi gwarancjami spójności.&lt;/p&gt;</description></item><item><title>Newsletter Dane i Analizy, 2023-09-11</title><link>https://blog.prokulski.science/2023/09/11/newsletter-dane-i-analizy-2023-09-11/</link><pubDate>Mon, 11 Sep 2023 15:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2023/09/11/newsletter-dane-i-analizy-2023-09-11/</guid><description>&lt;p&gt;Dzisiaj sporo materiałów wideo. Od prostych przewodników po kilkanaście minut (z czego &amp;ldquo;mięso&amp;rdquo; zajmuje do 5-10, a i to najwyżej) do dużego kursu na półtorej godziny. Trochę też o budowaniu czy może raczej ulepszaniu swojego środowiska pracy. Czy to w Linuxie czy to w VSCode. Ciekawostka, szok i niedowierzanie: oba te &amp;ldquo;zakresy tematyczne&amp;rdquo; (poprawa wygody pracy i wideo) mają części wspólne!&lt;/p&gt;&#10;&lt;p&gt;Dla tych którzy wierzą w &lt;a href="https://pl.wikipedia.org/wiki/Smugi_chemiczne"&gt;chemtrails&lt;/a&gt; też coś mamy ;-) a z całego tekstu, który znajdziecie niżej najlepszy i tak zawsze jest gotowy &lt;a href="https://www.kaggle.com/code/mnokno/getting-started-eda-model-train-submit"&gt;notebook z kodem&lt;/a&gt; (znowu Torch a nie TensorFlow - coś jest na rzeczy, prawda?)&lt;/p&gt;</description></item><item><title>Newsletter Dane i Analizy, 2022-02-14</title><link>https://blog.prokulski.science/2022/02/14/newsletter-dane-i-analizy-2022-02-14/</link><pubDate>Mon, 14 Feb 2022 15:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2022/02/14/newsletter-dane-i-analizy-2022-02-14/</guid><description>&lt;p&gt;Dzisiaj coś trudniejszego niż MNIST oraz ściągawka z algorytmów grupowania elementów (clustering). Do tego ciekawy projekt wizualizacji danych z meczów piłki nożnej.&lt;/p&gt;&#10;&lt;p&gt;A jeśli myślisz o projektowaniu systemów a nie tylko o samej analizie danych to wykład Sławka Sobótki o Domain Driven Design powinien Cię uradować.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="ai_ml"&gt;#AI_ML&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://towardsdatascience.com/using-google-cloud-machine-learning-apis-programmatically-in-python-part-1-430f608af6a5"&gt;&lt;strong&gt;Using Google Cloud Machine Learning APIs&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&#10;Jak korzystać z interfejsów machine learning API od Google w Pythonie? Część pierwsza cyklu&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://towardsdatascience.com/using-fastai-to-classify-japanese-kanji-characters-47d7edd4d569"&gt;&lt;strong&gt;Using FastAI to classify Japanese kanji characters&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&#10;Rozpoznawanie pisanych ręcznie cyfr - czyli zbiór MNIST - to może być zbyt prosty problem dla adeptów sztuki nauki o danych&lt;/p&gt;</description></item><item><title>Newsletter Dane i Analizy, 2021-09-20</title><link>https://blog.prokulski.science/2021/09/20/newsletter-dane-i-analizy-2021-09-20/</link><pubDate>Mon, 20 Sep 2021 09:00:00 +0000</pubDate><guid>https://blog.prokulski.science/2021/09/20/newsletter-dane-i-analizy-2021-09-20/</guid><description>&lt;p&gt;&lt;a href="https://towardsdatascience.com/vlookup-implementation-in-python-in-three-simple-steps-93b5a290fd72"&gt;&lt;strong&gt;VLOOKUP implementation in Python in three simple steps&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&#10;Oftentimes, in the field of data analytics, it’s the data cleaning and processing that takes the most amount of time and effort. While the steps such as data cleaning, filtering, and pre-processing are generally under-evaluated or overlooked as compared to more juicy components such as the model development, it’s the quality of data that determines the quality of output. As it is rightly said, (&amp;hellip;)&lt;/p&gt;</description></item><item><title>Hyperopt i szukanie najlepszego parametru</title><link>https://blog.prokulski.science/2020/12/23/hyperopt-scikit-learn/</link><pubDate>Wed, 23 Dec 2020 15:04:21 +0000</pubDate><guid>https://blog.prokulski.science/2020/12/23/hyperopt-scikit-learn/</guid><description>&lt;p&gt;Kontynuując cykl o Pipelines w SciKit-Learn zajmiemy się tematem &lt;em&gt;kręcenia śrubkami&lt;/em&gt; w modelach w poszukiwaniu najlepszego wyniku. Użyjemy do tego pakietu hyperopt.&lt;/p&gt;&#10;&lt;p&gt;W poprzednich częściach &lt;a href="../../2020/10/10/pipeline-w-scikit-learn/"&gt;poznawaliśmy co to &amp;ldquo;pipeline&amp;rdquo; w SciKit-Learn&lt;/a&gt;, &lt;a href="../../2020/11/05/pipeline-w-scikit-learn-wlasny-estymator/"&gt;tworzyliśmy własne estymatory&lt;/a&gt; (przy okazji ucząc się trochę o programowaniu obiektowym, klasach i dziedziczeniu - nawet jeśli to było nieświadome). Dzisiaj ostatnia część z cyklu - kręcenie śrubkami zwanymi hyperparametrami.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="../../downloads/2020/12/srubki-300x200.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Ostatnio przeszukiwaliśmy siatkę hyperparametrów (wszystkie możliwe kombinacje) przy użyciu wbudowanych w SciKit-Learn mechanizmów (na przykład GridSearchCV). Dzisiaj poszukamy innej metody, innego pakietu. A będzie nim &lt;code&gt;hyperopt&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Pipeline w SciKit Learn</title><link>https://blog.prokulski.science/2020/10/10/pipeline-w-scikit-learn/</link><pubDate>Sat, 10 Oct 2020 11:21:01 +0000</pubDate><guid>https://blog.prokulski.science/2020/10/10/pipeline-w-scikit-learn/</guid><description>&lt;p&gt;Co to są &lt;em&gt;pipelines&lt;/em&gt; w sci-kit learn i jak je wykorzystać? Czyli &lt;strong&gt;bardziej efektywne szukanie najlepszego modelu&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="../../downloads/2020/10/jj-ying-4XvAZN8_WHo-unsplash.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@jjying"&gt;JJ Ying&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/pipeline"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Jeśli zajmujesz się tworzeniem modeli na przykład klasyfikujących jakieś dane to pewnie wielokrotnie powtarzasz te same kroki:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;wczytanie danych&lt;/li&gt;&#10;&lt;li&gt;oczyszczenie danych&lt;/li&gt;&#10;&lt;li&gt;uzupełnienie braków&lt;/li&gt;&#10;&lt;li&gt;przygotowanie dodatkowych cech (&lt;em&gt;feature engineering&lt;/em&gt;)&lt;/li&gt;&#10;&lt;li&gt;podział danych na treningowe i testowe&lt;/li&gt;&#10;&lt;li&gt;dobór hyperparametrów modelu&lt;/li&gt;&#10;&lt;li&gt;trenowanie modelu&lt;/li&gt;&#10;&lt;li&gt;testowanie modelu (sprawdzenie skuteczności działania)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I tak w kółko, z każdym nowy modelem.&lt;/p&gt;</description></item><item><title>Mapy w Pythonie</title><link>https://blog.prokulski.science/2020/02/28/mapy-w-pythonie/</link><pubDate>Fri, 28 Feb 2020 15:07:09 +0000</pubDate><guid>https://blog.prokulski.science/2020/02/28/mapy-w-pythonie/</guid><description>&lt;p&gt;Jakiś czas temu pokazywałem jak w prosty sposób narysować mapę w R. Dzisiaj powtórzymy zadanie dla Pythona.&lt;/p&gt;&#10;&lt;p&gt;Skorzystamy z danych GUS na temat bezrobocia oraz liczby ludności (pomijając dokładność &lt;em&gt;złożenia&lt;/em&gt; danych - interesuje nas rysowanie map, a nie analiza bezrobocia) oraz map z Głównego Urzędu Geodezji i Kartografii.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Jeśli potrzebujesz podobnych informacji jak zrobić to wszysto w R sprawdź na początek wszystko co jest w ramach tagu &lt;a href="../../tags/mapa/"&gt;mapa&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h3 id="skąd-pobrać-dane"&gt;Skąd pobrać dane?&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Dane o liczbie ludności&lt;/strong&gt;: &lt;a href="https://bdl.stat.gov.pl/BDL/metadane/cechy/2137"&gt;Ludność / Stan ludności / Ludność wg grup wieku i płci&lt;/a&gt; w tzw. &lt;strong&gt;BDLu&lt;/strong&gt; (czyli Banku Danych Lokalnych GUS) - bierzemy dane z 2018 roku (najnowsze pełne jakie są); Wiek = ogółem, Płeć = ogółem; wszystkie jednostki terytorialne. W wyniku klikania dostaniemy się do tabeli, którą ściągamy lokalnie poprzez &lt;strong&gt;Export / CSV - tablica wielowymiarowa&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Dokładnie tak samo pozyskujemy &lt;strong&gt;dane o liczbie bezrobotnych&lt;/strong&gt;: &lt;a href="https://bdl.stat.gov.pl/BDL/metadane/cechy/1944"&gt;Rynek pracy / Bezrobocie rejestrowane / Bezrobotni zarejestrowani wg płci w gminach&lt;/a&gt; (znowu: ogółem, 2019 rok, wszystkie jednostki; pobieramy plik CSV dokładnie tak samo jak wyżej).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Dane mapowe&lt;/strong&gt; bierzemy z &lt;a href="http://www.gugik.gov.pl/pzgik/dane-bez-oplat/dane-z-panstwowego-rejestru-granic-i-powierzchni-jednostek-podzialow-terytorialnych-kraju-prg"&gt;GUGiK&lt;/a&gt; - interesuje nas archiwum &lt;a href="ftp://91.223.135.109/prg/jednostki_administracyjne.zip"&gt;PRG – jednostki administracyjne&lt;/a&gt; (uwaga - to ma 375 MB!). To archiwum rozpakowujemy i (coś co ja robię, żeby później nie było problemów) zmieniamy nazwy plików tak, aby pozbyć się polskich znaków i wszystkie litery w nazwie były małe.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="przygotowanie-danych-z-gus"&gt;Przygotowanie danych z GUS&lt;/h3&gt;&#10;&lt;p&gt;Ale zanim - potrzebne nam będzie kilka pakietów Pythona do dalszej pracy:`&lt;/p&gt;</description></item><item><title>Analiza własnych finansów</title><link>https://blog.prokulski.science/2019/12/13/analiza-wyciagow-z-karty-kredytowej/</link><pubDate>Fri, 13 Dec 2019 14:20:00 +0000</pubDate><guid>https://blog.prokulski.science/2019/12/13/analiza-wyciagow-z-karty-kredytowej/</guid><description>&lt;p&gt;Jak nauczyć się analizy danych? Robiąc małe i duże projekty.&lt;/p&gt;&#10;&lt;p&gt;Kiedyś napisałem post o &lt;a href="../../2017/04/14/csi-lemur/"&gt;tym jak się przemieszczam&lt;/a&gt; w którym odsłoniłem dość dużo swojej prywatności, dzisiaj ciąg dalszy.&lt;/p&gt;&#10;&lt;p&gt;Postanowiłem, że mocniej wezmę się za Pythona i to co potrafię dość szybko zrobić w R będę robił w Pythonie. To najlepszy sposób na naukę - zmuszać się w pewnym sensie do przełamywania własnych oporów. Z drugiej strony - od dawna chodził za mną tekst związany z analizą własnych wydatków.&lt;/p&gt;</description></item></channel></rss>