tanszek:oktatas:muszaki_informatika:numpy_cheatsheet
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| tanszek:oktatas:muszaki_informatika:numpy_cheatsheet [2026/02/27 07:16] – created szabom | tanszek:oktatas:muszaki_informatika:numpy_cheatsheet [2026/02/27 07:28] (current) – [Gyakorló feladatok] szabom | ||
|---|---|---|---|
| Line 128: | Line 128: | ||
| loadtxt, savetxt | loadtxt, savetxt | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | ==== Gyakorló feladatok ==== | ||
| + | |||
| + | **I. Tömb létrehozás: | ||
| + | |||
| + | - Hozz létre egy 0–99 közötti egész számokat tartalmazó tömböt np.arange() segítségével. | ||
| + | - Hozz létre 50 darab egyenletesen elosztott számot 0 és 1 között np.linspace()-szel. | ||
| + | - Készíts egy 4x4-es nullmátrixot. | ||
| + | - Készíts egy 3x5-ös, 7-esekkel feltöltött mátrixot. | ||
| + | |||
| + | <sxh python> | ||
| + | import numpy as np | ||
| + | |||
| + | # 1 | ||
| + | a = np.arange(100) | ||
| + | # 2 | ||
| + | b = np.linspace(0, | ||
| + | # 3 | ||
| + | c = np.zeros((4, | ||
| + | # 4 | ||
| + | d = np.full((3, 5), 7) | ||
| + | print(a, b, c, d) | ||
| + | </ | ||
| + | |||
| + | **II. Tömb tulajdonságok és átalakítás: | ||
| + | |||
| + | - Generálj egy 1D tömböt 0–23-ig. | ||
| + | - Alakítsd át 4x6-os mátrixszá. | ||
| + | - Transzponáld. | ||
| + | - Lapítsd vissza 1D-be flatten() és ravel() segítségével. | ||
| + | - Ellenőrizd shape, ndim, size, dtype. | ||
| + | |||
| + | <sxh python> | ||
| + | arr = np.arange(24) | ||
| + | |||
| + | matrix = arr.reshape(4, | ||
| + | transposed = matrix.T | ||
| + | |||
| + | flat1 = matrix.flatten() | ||
| + | flat2 = matrix.ravel() | ||
| + | |||
| + | print(matrix.shape) | ||
| + | print(matrix.ndim) | ||
| + | print(matrix.size) | ||
| + | print(matrix.dtype) | ||
| + | </ | ||
| + | |||
| + | **III. Vektorizált matematikai műveletek: Elemankénti műveletek** | ||
| + | |||
| + | Hozz létre két 10 elemű tömböt. | ||
| + | - Számold ki: | ||
| + | - összegüket | ||
| + | - különbségüket | ||
| + | - szorzatukat | ||
| + | - hányadosukat | ||
| + | - Emeld az egyik tömb elemeit négyzetre. | ||
| + | - Számold ki a négyzetgyöküket. | ||
| + | - Alkalmazz logaritmust és exponenciális függvényt. | ||
| + | |||
| + | <sxh python> | ||
| + | a = np.arange(1, | ||
| + | b = np.arange(11, | ||
| + | |||
| + | osszeg = a + b | ||
| + | kulonbseg = a - b | ||
| + | szorzat = a * b | ||
| + | hanyados = a / b | ||
| + | |||
| + | negyzet = a ** 2 | ||
| + | gyok = np.sqrt(a) | ||
| + | |||
| + | log = np.log(a) | ||
| + | exp = np.exp(a) | ||
| + | |||
| + | print(osszeg, | ||
| + | </ | ||
| + | |||
| + | **IV. Aggregáló függvények: | ||
| + | |||
| + | - Generálj 1000 normál eloszlású számot. | ||
| + | - Számold ki: | ||
| + | - átlag | ||
| + | - medián | ||
| + | - szórás | ||
| + | - variancia | ||
| + | - minimum | ||
| + | - maximum | ||
| + | - Add meg a legnagyobb elem indexét. | ||
| + | - Számold ki az első 100 elem összegét. | ||
| + | |||
| + | <sxh python> | ||
| + | data = np.random.randn(1000) | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | |||
| + | **V. Mátrixműveletek: | ||
| + | |||
| + | - Generálj két 3x3-as mátrixot. | ||
| + | - Szorozd össze őket: | ||
| + | - np.dot() | ||
| + | - @ operátorral | ||
| + | - Számold ki az egyik determinánsát. | ||
| + | - Számold ki az inverzét. | ||
| + | - Oldj meg egy Ax = b lineáris egyenletrendszert. | ||
| + | |||
| + | <sxh python> | ||
| + | A = np.random.randint(1, | ||
| + | B = np.random.randint(1, | ||
| + | |||
| + | dot1 = np.dot(A, B) | ||
| + | dot2 = A @ B | ||
| + | |||
| + | det = np.linalg.det(A) | ||
| + | |||
| + | # Inverz csak ha invertálható | ||
| + | if det != 0: | ||
| + | inv = np.linalg.inv(A) | ||
| + | |||
| + | b = np.array([1, | ||
| + | if det != 0: | ||
| + | x = np.linalg.solve(A, | ||
| + | |||
| + | print(dot1, det) | ||
| + | </ | ||
| + | |||
| + | **VI. Boolean indexelés és szűrés: Feltételes műveletek** | ||
| + | |||
| + | - Generálj 100 elemből álló véletlen tömböt. | ||
| + | - Szűrd ki az 50-nél nagyobb elemeket. | ||
| + | - Cseréld az 50 alatti elemeket nullára np.where() segítségével. | ||
| + | - Számold meg, hány elem nagyobb 75-nél. | ||
| + | - Használd np.clip()-et az értékek 10–90 közé szorítására. | ||
| + | |||
| + | <sxh python> | ||
| + | arr = np.random.randint(0, | ||
| + | nagyobb_50 = arr[arr > 50] | ||
| + | uj = np.where(arr < 50, 0, arr) | ||
| + | db_75 = np.sum(arr > 75) | ||
| + | clipped = np.clip(arr, | ||
| + | print(nagyobb_50, | ||
| + | </ | ||
| + | |||
| + | **VII. Összefűzés és darabolás: Tömbmanipuláció** | ||
| + | |||
| + | - Hozz létre két 2x3-as mátrixot. | ||
| + | - Fűzd össze: | ||
| + | - függőlegesen (vstack) | ||
| + | - vízszintesen (hstack) | ||
| + | - Használd concatenate()-et. | ||
| + | - Oszd fel a mátrixot 3 részre split() segítségével. | ||
| + | |||
| + | <sxh python> | ||
| + | A = np.random.randint(1, | ||
| + | B = np.random.randint(1, | ||
| + | |||
| + | v = np.vstack((A, | ||
| + | h = np.hstack((A, | ||
| + | |||
| + | c = np.concatenate((A, | ||
| + | split = np.split(v, 2) | ||
| + | print(v, h) | ||
| + | </ | ||
| + | |||
| + | **VIII. Rendezés és keresés: Rendezési feladatok** | ||
| + | |||
| + | - Generálj 20 véletlen számot. | ||
| + | - Rendezd növekvő sorrendbe. | ||
| + | - Add meg a rendezési indexeket (argsort). | ||
| + | - Találd meg az egyedi elemeket (unique). | ||
| + | - Számold ki a 90. percentilist. | ||
| + | |||
| + | <sxh python> | ||
| + | arr = np.random.randint(0, | ||
| + | |||
| + | sorted_arr = np.sort(arr) | ||
| + | indices = np.argsort(arr) | ||
| + | unique_vals = np.unique(arr) | ||
| + | |||
| + | p90 = np.percentile(arr, | ||
| + | |||
| + | print(sorted_arr, | ||
| + | </ | ||
| + | |||
| + | **IX. Haladó – Idősor feldolgozás: | ||
| + | |||
| + | - Generálj 365 napi adatot. | ||
| + | - Számold ki: | ||
| + | - kumulatív összeget (cumsum) | ||
| + | - kumulatív szorzatot (cumprod) | ||
| + | - Számolj 7 napos mozgóátlagot np.convolve() segítségével. | ||
| + | - Határozd meg azokat a napokat, ahol az érték nagyobb az éves átlagnál. | ||
| + | |||
| + | <sxh python> | ||
| + | data = np.random.randn(365) | ||
| + | |||
| + | cumsum = np.cumsum(data) | ||
| + | cumprod = np.cumprod(data) | ||
| + | |||
| + | kernel = np.ones(7) / 7 | ||
| + | moving_avg = np.convolve(data, | ||
| + | |||
| + | atlag = np.mean(data) | ||
| + | nagyobb = data[data > atlag] | ||
| + | |||
| + | print(cumsum[: | ||
| + | </ | ||
| + | |||
| + | **X. NumPy fájlkezelés: | ||
| + | |||
| + | - Ments el egy tömböt .txt formátumban (savetxt). | ||
| + | - Olvasd vissza (loadtxt). | ||
| + | - Mentsd el .npy formátumban. | ||
| + | - Töltsd vissza. | ||
| + | - Ellenőrizd, | ||
| + | |||
| + | <sxh python> | ||
| + | arr = np.random.randint(1, | ||
| + | |||
| + | np.savetxt(" | ||
| + | loaded_txt = np.loadtxt(" | ||
| + | |||
| + | np.save(" | ||
| + | loaded_npy = np.load(" | ||
| + | |||
| + | print(np.array_equal(arr, | ||
| + | print(np.array_equal(arr, | ||
| + | </ | ||
| + | |||
| + | **XI. Broadcasting gyakorlás: Méretillesztés** | ||
| + | |||
| + | - Adj hozzá egy 1D tömböt egy 2D mátrix minden sorához. | ||
| + | - Normalizálj soronként. | ||
| + | - Vond ki minden oszlopból az oszlopátlagot. | ||
| + | - Szorozd meg az egész mátrixot egy skalárral. | ||
| + | - Ellenőrizd np.all() és np.any() használatával bizonyos feltételeket. | ||
| + | |||
| + | <sxh python> | ||
| + | matrix = np.random.randint(1, | ||
| + | vector = np.array([1, | ||
| + | |||
| + | # Soronkénti hozzáadás | ||
| + | result = matrix + vector | ||
| + | |||
| + | # Soronkénti normalizálás | ||
| + | row_mean = np.mean(matrix, | ||
| + | norm = matrix - row_mean | ||
| + | |||
| + | # Oszlopátlag kivonása | ||
| + | col_mean = np.mean(matrix, | ||
| + | centered = matrix - col_mean | ||
| + | |||
| + | # Skalárszorzás | ||
| + | scaled = matrix * 10 | ||
| + | |||
| + | print(np.all(matrix > 0)) | ||
| + | print(np.any(matrix > 8)) | ||
| + | </ | ||
tanszek/oktatas/muszaki_informatika/numpy_cheatsheet.1772176615.txt.gz · Last modified: 2026/02/27 07:16 by szabom
