Főnév

NumPy (tsz. NumPies)

  1. (informatika) NumPy (Numerical Python) egy nyílt forráskódú Python könyvtár, amely az alapvető numerikus számításokhoz és az adatok kezeléséhez készült. A NumPy-t széles körben használják a tudományos számítások, az adatfeldolgozás, a gépi tanulás és a statisztikai elemzések során. A könyvtár legfontosabb jellemzője a n-dimensional array (n-dimenziós tömb) támogatása, amely lehetővé teszi a nagy mennyiségű adat hatékony kezelését és feldolgozását.

Főbb Jellemzők

  1. N-dimenziós Tömbök:
    • A NumPy tömbök (ndarray) alapvető adatszerkezetei lehetővé teszik a többdimenziós adatok tárolását és manipulálását. A NumPy tömbök sokkal hatékonyabbak, mint a Python beépített listái, különösen a számítások végrehajtásában.
  2. Gyors Számítások:
    • A NumPy lehetővé teszi a matematikai műveletek gyors végrehajtását a tömbökön, köszönhetően az alacsony szintű C és Fortran kódokkal végzett optimalizálásnak.
  3. Széleskörű Matematikai Funkciók:
    • A NumPy széles körű matematikai és statisztikai funkciókat kínál, beleértve a lineáris algebra, statisztika, Fourier-transzformáció és random számok generálásának eszközeit.
  4. Integráció más Könyvtárakkal:
    • A NumPy szorosan integrálódik más Python könyvtárakkal, mint például a SciPy, Pandas, Matplotlib és scikit-learn, lehetővé téve a felhasználók számára, hogy komplex adatfeldolgozási és tudományos számítási feladatokat végezzenek.

Alkalmazások

  1. Adatfeldolgozás:
    • A NumPy elengedhetetlen az adatok előkészítése és feldolgozása során, lehetővé téve a tömbök és mátrixok hatékony manipulálását.
  2. Tudományos Számítások:
    • A tudósok és mérnökök a NumPy-t használják komplex matematikai számítások elvégzésére, például modellek és szimulációk futtatására.
  3. Gépi Tanulás:
    • A NumPy fontos szerepet játszik a gépi tanulás modellek fejlesztésében, mivel gyors és hatékony számításokat tesz lehetővé a bemeneti adatokkal.
  4. Kép- és Jelkezelés:
    • A NumPy tömböket használják a képek és jelek feldolgozására, lehetővé téve a pixeladatok manipulálását és a képek elemzését.

Példák a Használatra

  • Tömbök Létrehozása: python import numpy as np array = np.array([[1, 2, 3], [4, 5, 6]])
  • Alapvető Matematikai Műveletek: python # Elemi műveletek a tömbökön sum_array = np.sum(array) mean_array = np.mean(array)
  • Lineáris Algebra: python # Mátrix szorzás A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) C = np.dot(A, B)

Összegzés

A NumPy egy alapvető könyvtár a Python programozási nyelvhez, amely a numerikus számítások és adatok kezelésének hatékonyságát segíti. A tömbök és mátrixok támogatása, a gyors számítási képességek, valamint a széleskörű matematikai funkciók révén a NumPy elengedhetetlen eszköz a tudományos számításokban, az adatfeldolgozásban és a gépi tanulásban.


Az alábbiakban néhány gyakran használt NumPy funkciót és példát mutatok be, amelyek jól demonstrálják a könyvtár erejét és egyszerűségét.



1. NumPy tömb létrehozása

Egyszerű tömbök létrehozása:

import numpy as np

# 1D tömb
array_1d = np.array([1, 2, 3, 4, 5])

# 2D tömb
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Nullákkal feltöltött tömb
zeros_array = np.zeros((3, 3))

# Egységekkel feltöltött tömb
ones_array = np.ones((2, 4))

# Véletlen számokból álló tömb
random_array = np.random.rand(3, 3)

print("1D tömb:", array_1d)
print("2D tömb:\n", array_2d)
print("Nullákkal feltöltött tömb:\n", zeros_array)
print("Egységekkel feltöltött tömb:\n", ones_array)
print("Véletlen tömb:\n", random_array)

2. NumPy tömbök alapműveletei

Alapvető matematikai műveletek:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# Összeadás, kivonás, szorzás, osztás
print("Összeadás:", a + b)
print("Kivonás:", a - b)
print("Elemenkénti szorzás:", a * b)
print("Elemenkénti osztás:", a / b)

# Skálázás
print("Skálázás (szorzás 2-vel):", a * 2)

# Négyzetre emelés
print("Elemek négyzete:", a ** 2)

Mátrixműveletek:

A = np.array([[1, 2], [3, 4]])
B = np.array([[2, 0], [1, 3]])

# Mátrix szorzás
matrix_product = np.dot(A, B)  # vagy A @ B
print("Mátrix szorzat:\n", matrix_product)

# Transzponálás
print("Mátrix transzponáltja:\n", A.T)

# Determináns
determinant = np.linalg.det(A)
print("Mátrix determinánsa:", determinant)

# Inverz mátrix
inverse = np.linalg.inv(A)
print("Inverz mátrix:\n", inverse)

3. Indexelés és szeletelés

Indexelés:

array = np.array([10, 20, 30, 40, 50])

# Indexelés
print("Első elem:", array[0])
print("Utolsó elem:", array[-1])

# Tömb módosítása
array[2] = 99
print("Módosított tömb:", array)

Szeletelés:

array = np.array([10, 20, 30, 40, 50])

# Szeletelés (2. és 4. elem)
print("Szelet:", array[1:4])

# Többdimenziós szeletelés
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Első két sor:\n", matrix[:2, :])
print("Első oszlop:\n", matrix[:, 0])

4. Statikai számítások NumPy-val

data = np.array([1, 2, 3, 4, 5])

# Alapvető statisztikai számítások
print("Összeg:", np.sum(data))
print("Átlag:", np.mean(data))
print("Medián:", np.median(data))
print("Minimum:", np.min(data))
print("Maximum:", np.max(data))
print("Szórás:", np.std(data))

5. NumPy tömbök összeállítása és bontása

Tömbök összeillesztése:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# Sorok mentén összefűzés
concat_rows = np.vstack((a, b))
print("Sorok mentén:\n", concat_rows)

# Oszlopok mentén összefűzés
concat_cols = np.hstack((a, b))
print("Oszlopok mentén:\n", concat_cols)

Tömbök felosztása:

array = np.array([[1, 2, 3], [4, 5, 6]])

# Sorok szerinti bontás
split_rows = np.vsplit(array, 2)
print("Sorok bontása:", split_rows)

# Oszlopok szerinti bontás
split_cols = np.hsplit(array, 3)
print("Oszlopok bontása:", split_cols)

6. Véletlenszám-generálás

Véletlenszámok létrehozása:

# Egyenletes eloszlású véletlenszámok
random_uniform = np.random.rand(3, 3)

# Normális eloszlású véletlenszámok
random_normal = np.random.randn(3, 3)

# Egész számok véletlenszerű generálása
random_integers = np.random.randint(0, 10, (3, 3))

print("Egyenletes eloszlású:\n", random_uniform)
print("Normális eloszlású:\n", random_normal)
print("Véletlen egész számok:\n", random_integers)