User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:numpy_i._toemboek_indexeles_muveletek

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
tanszek:oktatas:muszaki_informatika:numpy_i._toemboek_indexeles_muveletek [2026/02/27 06:20] szabomtanszek:oktatas:muszaki_informatika:numpy_i._toemboek_indexeles_muveletek [2026/02/27 06:29] (current) – [Összefoglaló feladatok] szabom
Line 128: Line 128:
 </sxh> </sxh>
  
-2. feladat+2. Feladat – Lista vs NumPy teljesítmény és műveletek 
 + 
 +Hozz létre 1 millió elemű számlistát: 
 +  * sima Python listával 
 +  * NumPy tömbbel 
 +  * Szorozd meg minden elemét 2-vel: 
 +  * listán ciklussal 
 +  * NumPy array-n vektorizáltan 
 +  * Mérd az időt. 
 +  * Hasonlítsd össze az eredményeket. 
 + 
 +<sxh python> 
 +import numpy as np 
 +import time 
 + 
 +# Lista 
 +lista = list(range(1_000_000)) 
 + 
 +start = time.time() 
 +uj_lista = [] 
 +for x in lista: 
 +    uj_lista.append(x * 2) 
 +print("Lista idő:", time.time() - start) 
 + 
 +# NumPy 
 +array = np.arange(1_000_000) 
 + 
 +start = time.time() 
 +uj_array = array * 2 
 +print("NumPy idő:", time.time() - start) 
 +</sxh> 
 + 
 +3. Feladat – Fájlbeolvasás és statisztikai elemzés 
 + 
 +Adott egy adatok.txt fájl, amely soronként számokat tartalmaz. 
 + 
 +  * Olvasd be listába. 
 +  * Alakítsd NumPy tömbbé. 
 +  * Számold ki: 
 +     * átlag 
 +     * szórás 
 +     * minimum 
 +     * maximum 
 +  * Szűrd ki a 10 feletti értékeket (vektorizáltan). 
 + 
 +<sxh python> 
 +import numpy as np 
 + 
 +def beolvasas(fajlnev): 
 +    lista = [] 
 +    try: 
 +        with open(fajlnev, "r") as f: 
 +            for sor in f: 
 +                lista.append(float(sor.strip())) 
 +    except FileNotFoundError: 
 +        print("A fájl nem található!"
 +    return lista 
 + 
 +lista = beolvasas("adatok.txt"
 +array = np.array(lista) 
 + 
 +print("Átlag:", np.mean(array)) 
 +print("Szórás:", np.std(array)) 
 +print("Minimum:", np.min(array)) 
 +print("Maximum:", np.max(array)) 
 + 
 +szurt = array[array > 10] 
 +print("10 felettiek:", szurt) 
 +</sxh> 
 + 
 +4. Feladat – Mátrixműveletek és vektorizált számítás 
 + 
 +  * Generálj egy 5x5-ös véletlen mátrixot. 
 +  * Számold ki: 
 +     * soronkénti összeget 
 +     * oszloponkénti átlagot 
 +     * Normalizáld a mátrixot (0–1 közé skálázás). 
 +     * Ne használj ciklust, csak NumPy műveleteket. 
 + 
 +<sxh python> 
 +import numpy as np 
 + 
 +matrix = np.random.randint(1, 100, (5, 5)) 
 + 
 +print("Mátrix:\n", matrix) 
 + 
 +# Sorösszeg 
 +sor_osszeg = np.sum(matrix, axis=1) 
 +print("Sorösszegek:", sor_osszeg) 
 + 
 +# Oszlopátlag 
 +oszlop_atlag = np.mean(matrix, axis=0) 
 +print("Oszlopátlag:", oszlop_atlag) 
 + 
 +# Normalizálás 
 +min_val = np.min(matrix) 
 +max_val = np.max(matrix) 
 + 
 +normalizalt = (matrix - min_val) / (max_val - min_val) 
 +print("Normalizált mátrix:\n", normalizalt) 
 +</sxh> 
 + 
 +5. Feladat – Két dimenziós adatfeldolgozás (vizsgaeredmények) 
 + 
 +  * Egy 2D NumPy tömb sorai diákok, oszlopai tantárgyak pontszámai. 
 +  * Számold ki minden diák átlagát. 
 +  * Számold ki a tantárgyankénti átlagot. 
 +  * Szűrd ki azokat a diákokat, akiknek az átlaga 60 alatt van. 
 +  * Hasonlítsd össze listás és NumPy megoldással. 
 + 
 +<sxh python> 
 +import numpy as np 
 + 
 +pontok = np.array([ 
 +    [70, 80, 90], 
 +    [50, 40, 60], 
 +    [90, 95, 100], 
 +    [30, 50, 45] 
 +]) 
 + 
 +# Diák átlag 
 +diak_atlag = np.mean(pontok, axis=1) 
 +print("Diák átlagok:", diak_atlag) 
 + 
 +# Tantárgy átlag 
 +tantargy_atlag = np.mean(pontok, axis=0) 
 +print("Tantárgy átlagok:", tantargy_atlag) 
 + 
 +# Bukottak 
 +bukott_index = np.where(diak_atlag < 60) 
 +print("Bukott diák indexek:", bukott_index) 
 +</sxh> 
 + 
 +6. Feladat – Idősoros adatelemzés (komplex) 
 + 
 +  * Generálj 365 napos hőmérsékleti adatot. 
 +  * Számold ki: 
 +     * éves átlag 
 +     * legmelegebb 10 nap 
 +     * hány nap volt 30°C felett 
 +     * Mozgóátlag (7 napos). 
 +  * Oldd meg ciklus nélkül, vektorizáltan. 
 + 
 +<sxh python> 
 +import numpy as np 
 + 
 +# Generált adatok 
 +homerseklet = np.random.normal(20, 10, 365) 
 + 
 +# Éves átlag 
 +print("Éves átlag:", np.mean(homerseklet)) 
 + 
 +# Legmelegebb 10 nap 
 +legmelegebb = np.sort(homerseklet)[-10:
 +print("Top 10 meleg nap:", legmelegebb) 
 + 
 +# 30 fok feletti napok 
 +print("30 fok feletti napok száma:", np.sum(homerseklet > 30)) 
 + 
 +# 7 napos mozgóátlag 
 +kernel = np.ones(7) / 7 
 +mozgo_atlag = np.convolve(homerseklet, kernel, mode='valid'
 + 
 +print("Mozgóátlag első 10 értéke:", mozgo_atlag[:10]) 
 +</sxh>
tanszek/oktatas/muszaki_informatika/numpy_i._toemboek_indexeles_muveletek.txt · Last modified: 2026/02/27 06:29 by szabom