a + 5 a + np.array([1,2,3])
array, arange, linspace zeros, ones, full shape, reshape sum, mean, std, min, max argmax, argmin dot / @ where sort, argsort concatenate unique loadtxt, savetxt
I. Tömb létrehozás: Alap generálás
import numpy as np # 1 a = np.arange(100) # 2 b = np.linspace(0, 1, 50) # 3 c = np.zeros((4, 4)) # 4 d = np.full((3, 5), 7) print(a, b, c, d)
II. Tömb tulajdonságok és átalakítás: Shape és reshape
arr = np.arange(24) matrix = arr.reshape(4, 6) 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.
a = np.arange(1, 11) b = np.arange(11, 21) 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, kulonbseg, szorzat, hanyados)
IV. Aggregáló függvények: Statisztikai elemzés
data = np.random.randn(1000)
print("Átlag:", np.mean(data))
print("Medián:", np.median(data))
print("Szórás:", np.std(data))
print("Variancia:", np.var(data))
print("Min:", np.min(data))
print("Max:", np.max(data))
print("Max index:", np.argmax(data))
print("Első 100 elem összege:", np.sum(data[:100]))
V. Mátrixműveletek: Lineáris algebra
A = np.random.randint(1, 10, (3, 3))
B = np.random.randint(1, 10, (3, 3))
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, 2, 3])
if det != 0:
x = np.linalg.solve(A, b)
print(dot1, det)
VI. Boolean indexelés és szűrés: Feltételes műveletek
arr = np.random.randint(0, 100, 100) nagyobb_50 = arr[arr > 50] uj = np.where(arr < 50, 0, arr) db_75 = np.sum(arr > 75) clipped = np.clip(arr, 10, 90) print(nagyobb_50, db_75)
VII. Összefűzés és darabolás: Tömbmanipuláció
A = np.random.randint(1, 10, (2, 3)) B = np.random.randint(1, 10, (2, 3)) v = np.vstack((A, B)) h = np.hstack((A, B)) c = np.concatenate((A, B), axis=0) split = np.split(v, 2) print(v, h)
VIII. Rendezés és keresés: Rendezési feladatok
arr = np.random.randint(0, 50, 20) sorted_arr = np.sort(arr) indices = np.argsort(arr) unique_vals = np.unique(arr) p90 = np.percentile(arr, 90) print(sorted_arr, indices, unique_vals, p90)
IX. Haladó – Idősor feldolgozás:mMozgóátlag és kumuláció
data = np.random.randn(365) cumsum = np.cumsum(data) cumprod = np.cumprod(data) kernel = np.ones(7) / 7 moving_avg = np.convolve(data, kernel, mode="valid") atlag = np.mean(data) nagyobb = data[data > atlag] print(cumsum[:5], moving_avg[:5])
X. NumPy fájlkezelés: Fájlműveletek
arr = np.random.randint(1, 100, (5, 5))
np.savetxt("adat.txt", arr)
loaded_txt = np.loadtxt("adat.txt")
np.save("adat.npy", arr)
loaded_npy = np.load("adat.npy")
print(np.array_equal(arr, loaded_txt))
print(np.array_equal(arr, loaded_npy))
XI. Broadcasting gyakorlás: Méretillesztés
matrix = np.random.randint(1, 10, (4, 3)) vector = np.array([1, 2, 3]) # Soronkénti hozzáadás result = matrix + vector # Soronkénti normalizálás row_mean = np.mean(matrix, axis=1, keepdims=True) norm = matrix - row_mean # Oszlopátlag kivonása col_mean = np.mean(matrix, axis=0) centered = matrix - col_mean # Skalárszorzás scaled = matrix * 10 print(np.all(matrix > 0)) print(np.any(matrix > 8))