Izvršavanje koda u Jupyter svesci

Programski kod koji je generisao ChatGPT možemo i sami da izvršimo. U tu svrhu, koristićemo Jupyter svesku. Objasnićemo vam kako da instalirate i pokrenete Jupyter kasnije u toku kursa. Zasad, ovako izgleda prazna Jupyter sveska:

Ikonica za prikaz koda

Svaka Jupyter sveska sastoji se iz jedne ili više ćelija. Sveska koju smo gore prikazali sadrži jednu praznu ćeliju. U tu ćeliju kopiraćemo programski kod čijim je izvršavanjem generisan prvi grafikon u okviru ChatGPT-a.

Na sledećoj slici, prikazana je Jupyter sveska u koju smo kopirali pomenuti kod. Kursor miša nalazi se na dugmetu za izvršavanje koda:

Parče koda u ćeliji

Informacija

Ako želite obuhvatniji prikaz kopiranja koda iz ChatGPT-a u ćeliju Jupyter sveske, savetujemo vam da pogledate video lekciju. Uopšteno govoreći, u videu možete potpunije sagledati način na koji koristimo alate.

Nakon izvršavanja koda iz ćelije, u Jupyter svesci nam se ukazuje sledeći grafikon:

Parče koda u ćeliji

Na sledećoj slici je prikazan isti grafikon generisan u dva različita alata. Sa leve strane je grafikon u okviru Jupyter sveske, a sa desne strane je grafikon generisan u okviru ChatGPT-a.

Isti grafikon

Iako su grafikoni istovetni u pogledu analiziranih podataka, primećujemo manje razlike u formatiranju. Naime, ispisi datuma na vremenskoj osi u Jupyter svesci se ne preklapaju, premda bi bili pregledniji da su iskošeni. U mnogim aplikacijama se dešava da se tekst drugačije prikazuje usled različitih uveličavanja.

Kada kod kojim je generisan grafikon sa preglednijim datumima kopiramo u novu ćeliju Jupyter sveske i izvršimo ga, dobijamo sledeće:

Drugi grafikon u Jupyter-u

Na taj način smo uspeli da analizu koju smo napravili u okviru ChatGPT-a u celosti reprodukujemo u jednoj Jupyter svesci.

U Jupyter svesci sada imamo dve verzije grafikona. Budući da je u drugoj verziji izmenjen samo ispis datuma na vremenskoj osi, obe verzije nam nisu potrebne.

Međutim, ne možemo samo da obrišemo prvu ćeliju. Naime, ako pažljivo uporedimo linije koda iz prve i iz druge ćelije, primećujemo da na početku koda iz prve ćelije imamo linije koje se ne ponavljaju u drugoj ćeliji:

import pandas as pd
import matplotlib.pyplot as plt

# Kreiranje DataFrame-a sa zadatim podacima
data = {
    "Datum": ["2024-06-01", "2024-06-02", "2024-06-03", "2024-06-04", "2024-06-05", "2024-06-06", "2024-06-07", "2024-06-08", "2024-06-09", "2024-06-10"],
    "Temperatura (°C)": [25.3, 26.1, 24.8, 23.5, 22.0, 24.0, 25.5, 27.0, 28.3, 29.0],
    "Vlažnost (%)": [60, 55, 65, 70, 75, 68, 58, 50, 45, 40]
}

df = pd.DataFrame(data)
df["Datum"] = pd.to_datetime(df["Datum"])

Ako želimo da konsolidujemo konačnu verziju koda, neophodno je da iz druge ćelije kopiramo određeni deo koda:

fig, ax1 = plt.subplots(figsize=(10, 6))

Zatim je potrebno da odgovarajući deo koda iz prve ćelije zamenimo kopiranim kodom iz druge ćelije. Nakon toga, možemo ponovo da izvršimo prvu ćeliju i, ako utvrdimo da je novogenerisani grafikon ispravan, možemo obrisati drugu ćeliju. Sada u Jupyter svesci imamo jednu ćeliju sa kodom kojim se generiše konačna verzija grafikona.

Razumevanje i dalje prilagođavanje koda

Videli smo kako da uz pomoć ChatGPT-a brzo kreiramo grafikon koji nam je potreban prilikom analize podataka, čak i kad ne posedujemo predznanja o alatima koji se u tu svrhu koriste.

Međutim, ako smo mi ti koji treba da stanemo iza rezultata analize, neophodno je da razumemo ono što je generisano. Uz to, potrebno je da znamo kako da, imajući u vidu nove podatke, istu analizu ponovimo, odnosno modifikujemo.

Na primer, želimo da vidimo kako bi izgledao grafikon da 5. juna temperatura nije bila 22°C nego 25°C.

Budući da već imamo pripremljenu Jupyter svesku, potrebno je samo da izmenimo vrednost u podacima o temperaturi (umesto 22.0 staviti 25.0):

data = {
    "Datum": ["2024-06-01", "2024-06-02", "2024-06-03", "2024-06-04", "2024-06-05", "2024-06-06", "2024-06-07", "2024-06-08", "2024-06-09", "2024-06-10"],
    "Temperatura (°C)": [25.3, 26.1, 24.8, 23.5, 25.0, 24.0, 25.5, 27.0, 28.3, 29.0],
    "Vlažnost (%)": [60, 55, 65, 70, 75, 68, 58, 50, 45, 40]
}

Zatim, ponovnim izvršavanjem koda, dobijamo željeni grafikon:

Promenjen grafikon

Zaključak

ChatGPT i drugi alati veštačke inteligencije najviše nam pomažu kada razumemo ono što je generisano. Premda smo počeli od pretpostavke da ne moramo da posedujemo predznanja o alatima da bismo počeli da se bavimo analizom podataka, dolazimo do zaključka da je potrebno da ponešto znamo o programskom jeziku Python upravo zato što se ChatGPT na njega oslanja. Najbolji ishod postižemo ako ChatGPT koristimo kako bismo manje vremena utrošili na tehničke stvari, te lakše započeli analizu, a istovremeno imamo dovoljno znanja da to što je generisano kritički ocenimo i dalje uklopimo u širu celinu.

Kada je korišćenje programskog jezika Python u pitanju, premda ćemo uz ChatGPT otkucati manje koda, mi i dalje treba da razumemo kod, da umemo da ga modifikujemo i da znamo kako da od manjih kockica pravimo veće.

Dalje, iako ga nismo koristili u primerima u ovoj lekciji, nećemo izgubiti iz vida ni mogućnosti koje nam pruža Excel. On nam može biti od koristi u situacijama kada ručno editujemo podatke u tabelama, ili kada dorađujemo izgled grafikona za važnu prezentaciju, kao i za druge operacije u kojima nudi jednostavno rešenje.

Nastojaćemo da kroz ovaj kurs povežemo sve pomenute alate, pri čemu ćemo svaki alat, uz pomoć veštačke inteligencije, koristiti za ono za šta je najbolji.