Python NumPy oktatóanyag kezdőknek: Tanuljon példákkal
Miben található a NumPy? Python?
numpy egy nyílt forráskódú könyvtár, amely itt érhető el Python, amely segít a matematikai, tudományos, mérnöki és adattudományi programozásban. Ez egy nagyon hasznos könyvtár matematikai és statisztikai műveletek végrehajtásához Python. Tökéletesen működik többdimenziós tömbökhöz és mátrixszorzáshoz. Könnyen integrálható a C/C++ és a Fortran.
Bármely tudományos projekthez a NumPy az eszköz, amelyet tudni kell. Úgy készült, hogy működjön az N-dimenziós tömbökkel, lineáris algebrával, véletlen számokkal, Fourier-transzformációval stb.
A NumPy egy olyan programozási nyelv, amely többdimenziós tömbökkel és mátrixokkal foglalkozik. A tömbök és mátrixok mellett a NumPy számos matematikai műveletet támogat. Ebben a részben áttekintjük azokat az alapvető funkciókat, amelyeket tudnia kell a következő oktatóanyaghozTensorFlow. "
Miért használja a NumPy-t?
A NumPy a memóriahatékonyság, ami azt jelenti, hogy a hatalmas mennyiségű adatot minden más könyvtárnál jobban hozzáférhetővé teszi. Emellett a NumPy-val nagyon kényelmes dolgozni, különösen mátrixszorzáshoz és -átalakításhoz. Ráadásul a NumPy gyors. Valójában a TensorFlow és a Scikit megtanulják a NumPy tömb használatát a mátrixszorzás kiszámításához a háttérben.
A NumPy telepítése
A NumPy könyvtár telepítéséhez tekintse meg oktatóanyagunkat A TensorFlow telepítése. A NumPy alapértelmezés szerint telepítve van az Anacondával.
Távoli esetben a NumPy nincs telepítve-
A NumPy-t az Anaconda segítségével telepítheti:
conda install -c anaconda numpy
- In Jupyter Jegyzetfüzet:
import sys !conda install --yes --prefix {sys.prefix} numpy
Importálja a NumPy-t és ellenőrizze a verziót
A numpy importálásának parancsa a következő:
import numpy as np
A fenti kód átnevezi a Numpy névteret np-re. Ez lehetővé teszi, hogy a Numpy függvény, metódusok és attribútumok elé „np” kerüljön a „numpy” beírása helyett. Ez az a szokásos parancsikon, amelyet a zűrös irodalomban talál
A NumPy telepített verziójának ellenőrzéséhez használja az alábbi parancsot:
print (np.__version__)
output:
1.18.0
Mi a Python NumPy Array?
A NumPy tömbök egy kicsit hasonlóak Python listák, de ugyanakkor mégis nagyon eltérőek. Azok számára, akik most ismerkednek a témával, tisztázzuk, mi is ez pontosan, és mire jó.
Ahogy a név is mutatja, a NumPy tömb a numpy könyvtár központi adatstruktúrája. A könyvtár neve valójában a „Numeric Python” vagy „Numerical Python".
NumPy tömb létrehozása
A Numpy programban a tömb létrehozásának legegyszerűbb módja a használata Python Lista
myPythonList = [1,9,8,3]
A python listát numpy tömbbé konvertálni az np.array objektum használatával.
numpy_array_from_list = np.array(myPythonList)
A lista tartalmának megjelenítéséhez
numpy_array_from_list
output:
array([1, 9, 8, 3])
A gyakorlatban nem kell deklarálni a Python Lista. A művelet kombinálható.
a = np.array([1,9,8,3])
JEGYZET: A Numpy dokumentáció szerint az np.ndarray használata tömb létrehozásához szükséges. Ez azonban az ajánlott módszer.
Létrehozhat egy numpy tömböt is egy Tuple-ből.
Matematikai Operaegy tömbön
Egy tömbön matematikai műveleteket, például összeadást, kivonást, osztást és szorzást végezhet. A szintaxis a tömbnév, amelyet a művelet (+.-,*,/) követ, majd az operandus
Példa:
numpy_array_from_list + 10
output:
array([11, 19, 18, 13])
Ez a művelet 10-et ad a numpy tömb minden eleméhez.
A tömb alakja
Ellenőrizheti a tömb alakját az objektum alakzatával, amelyet a tömb neve előz meg. Ugyanígy ellenőrizheti a típust a dtypes segítségével.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Az egész szám decimális nélküli érték. Ha decimális tömböt hoz létre, akkor a típus lebegőre változik.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 dimenziós tömb
Hozzáadhat egy dimenziót "," kómával
Vegye figyelembe, hogy a zárójelben kell lennie []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 dimenziós tömb
Magasabb dimenziót a következőképpen lehet megépíteni:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Objektív | Kód |
---|---|
Hozzon létre tömböt | tömb([1,2,3]) |
nyomtassa ki az alakzatot | tömb([.]).alak |
Mi az a numpy.zeros()?
numpy.zeros() vagy np.nullák Python A függvény nullákkal teli mátrix létrehozására szolgál. numpy.zeros() in Python akkor használható, amikor inicializálja a súlyokat a TensorFlow és más statisztikai feladatok első iterációja során.
numpy.zeros() függvény Szintaxis
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Paraméterek
Itt,
- Alak: a numpy nulla tömb alakja
- Dtípus: az adattípus számszerű nullákkal. Ez nem kötelező. Az alapértelmezett érték a float64
- Megrendelés: Az alapértelmezés a C, amely elengedhetetlen sorstílus a numpy.zeros() in Python.
Python numpy.zeros() Példa
import numpy as np np.zeros((2,2))
output:
array([[0., 0.], [0., 0.]])
Példa a numpy nullára adattípussal
import numpy as np np.zeros((2,2), dtype=np.int16)
output:
array([[0, 0], [0, 0]], dtype=int16)
Mi az a numpy.ones()?
np.ones() függvény egy ilyenekkel teli mátrix létrehozására szolgál. numpy.ones() in Python akkor használható, amikor inicializálja a súlyokat a TensorFlow és más statisztikai feladatok első iterációja során.
Python numpy.ones() Szintaxis
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Paraméterek
Itt,
- Alak: az np.egyesek alakja Python Sor
- Dtípus: az adattípus számtalan formában. Ez nem kötelező. Az alapértelmezett érték a float64
- Megrendelés: Az alapértelmezett a C, amely alapvető sorstílus.
Python numpy.ones() 2D tömb adattípus példával
import numpy as np np.ones((1,2,3), dtype=np.int16)
output:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape() függvény be Python
Python NumPy Reshape A függvény egy tömb alakítására szolgál az adatok megváltoztatása nélkül. Egyes esetekben előfordulhat, hogy át kell alakítani az adatokat szélesről hosszúra. Ehhez használhatja az np.reshape függvényt.
Az np.reshape() szintaxisa
numpy.reshape(a, newShape, order='C')
Itt,
a: Tömb, amelyet át szeretne alakítani
newShape: Az új vágyak formálódnak
Megrendelés: Az alapértelmezett a C, amely alapvető sorstílus.
Példa a NumPy átformálására
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
output:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() in Python
Python NumPy Flatten A függvény a tömb egydimenziós másolatának visszaadására szolgál. Amikor valamilyen neurális hálózattal foglalkozik, például a convnet-tel, egyenlítenie kell a tömböt. Ehhez használhatja az np.flatten() függvényeket.
Az np.flatten() szintaxisa
numpy.flatten(order='C')
Itt,
Megrendelés: Az alapértelmezett a C, amely alapvető sorstílus.
Példa a NumPy Flattenre
e.flatten()
output:
array([1, 2, 3, 4, 5, 6])
Mi az a numpy.hstack() Python?
Numpy.hstack egy függvény benne Python amelyet a bemeneti tömbök sorozatainak vízszintes egymásra halmozására használnak egyetlen tömb létrehozása érdekében. A hstack() függvénnyel vízszintesen fűzhet hozzá adatokat. Ez egy nagyon kényelmes funkció a NumPy-ban.
Tanulmányozzuk a hstack in Python egy példával:
Példa:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
output:
Horizontal Append: [1 2 3 4 5 6]
Mi az a numpy.vstack() Python?
Numpy.vstack egy függvény benne Python amelyet a bemeneti tömbök sorozatainak függőleges egymásra halmozására használnak egyetlen tömb létrehozása érdekében. A vstack() függvénnyel függőlegesen fűzhet hozzá adatokat.
Tanulmányozzuk egy példával:
Példa:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
output:
Vertical Append: [[1 2 3] [4 5 6]]
A NumPy vstack és hstack tanulmányozása után tanuljunk meg egy példát véletlen számok NumPy programban történő előállítására.
Véletlenszerű generálás Numbers a NumPy használatával
Véletlen számok generálásához Gauss-eloszláshoz használja:
numpy.random.normal(loc, scale, size)
Itt,
- Loc: az átlag. Az elosztás központja
- Skála: szórás.
- Méret: visszaküldések száma
Példa:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Ha ábrázoljuk, az eloszlás hasonló lesz a következőhöz
NumPy Asarray függvény
Az asarray() függvényt akkor használjuk, ha egy bemenetet tömbbé szeretnénk konvertálni. A bemenet lehet listák, tuple, ndarray stb.
Syntax:
numpy.asarray(data, dtype=None, order=None)[source]
Itt,
Az információk szétdarabolódása: Tömbbé konvertálni kívánt adatok
dtype: Ez egy opcionális argumentum. Ha nincs megadva, az adattípus a bemeneti adatokból következtet
Megrendelés: Az alapértelmezett a C, amely alapvető sorstílus. A másik lehetőség az F (Fortan-stílus)
Példa:
Tekintsük a következő kétdimenziós mátrixot, amelyben négy sor és négy oszlop van kitöltve 2-gyel
import numpy as np A = np.matrix(np.ones((4,4)))
Ha meg akarja változtatni a mátrix értékét, nem teheti meg. Ennek az az oka, hogy nem lehet egy példányt megváltoztatni.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
A mátrix megváltoztathatatlan. Használhatja az asarray-t, ha módosítást szeretne hozzáadni az eredeti tömbhöz. Nézzük meg, történik-e változás, amikor a harmadik sorok értékét 2-es értékkel kívánja módosítani.
np.asarray(A)[2]=2 print(A)
Kód magyarázata:
np.asarray(A): az A mátrixot tömbbé alakítja
[2]: válassza ki a harmadik sort
output:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Mi az a numpy.arange()?
numpy.arange() egy beépített numpy függvény, amely egy meghatározott intervallumon belül egyenletesen elosztott értékeket tartalmazó ndarray objektumot ad vissza. Például 1 és 10 közötti értékeket szeretne létrehozni; az np.arange()-t használhatod Python funkciót.
Syntax:
numpy.arange(start, stop, step, dtype)
Python NumPy sorparaméterek:
- Rajt: np.arange in intervallum kezdete Python funkciót.
- megáll: intervallum vége.
- Lépés: Térköz az értékek között. Az alapértelmezett lépés az 1.
- Dtípus: A NumPy arange in tömb kimenetének típusa Python.
Példa:
import numpy np np.arange(1, 11)
output:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Példa:
Ha meg szeretné változtatni a lépést ebben a NumPy arange függvényben Python Például a zárójelben egy harmadik számot is megadhat. Ez megváltoztatja a lépést.
import numpy np np.arange(1, 14, 4)
output:
array([ 1, 5, 9, 13])
NumPy Linspace függvény
A Linspace egyenletesen elosztott mintákat ad.
Syntax:
numpy.linspace(start, stop, num, endpoint)
Itt,
- Rajt: A sorozat kezdő értéke
- megáll: A sorozat végértéke
- -Ban: A generálandó minták száma. Az alapértelmezett az 50
- Endpoint: Igaz (alapértelmezett) esetén a stop az utolsó érték. Ha False, a stop érték nem szerepel.
Példa:
Használható például 10 érték létrehozására 1-től 5-ig egyenletesen elosztva.
import numpy as np np.linspace(1.0, 5.0, num=10)
output:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Ha nem szeretné az utolsó számjegyet belefoglalni az intervallumba, a végpontot false értékre állíthatja
np.linspace(1.0, 5.0, num=5, endpoint=False)
output:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy függvény be Python
A LogSpace páros térközű számokat ad vissza egy naplóskálán. A Logspace ugyanazokkal a paraméterekkel rendelkezik, mint az np.linspace.
Syntax:
numpy.logspace(start, stop, num, endpoint)
Példa:
np.logspace(3.0, 4.0, num=4)
output:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Végül, ha egy tömbben lévő elem memóriaméretét szeretné ellenőrizni, használhatja az elemméretet
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
output:
16
Minden elem 16 bájtot vesz igénybe.
Indexelés és szeletelés Python
Az adatok szeletelése triviális a numpy-val. Az „e” mátrixot felszeleteljük. Vegye figyelembe, hogy be Python, akkor a zárójeleket kell használnia a sorok vagy oszlopok visszaadásához
Példa:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Ne feledje, hogy a numpy használatával az első tömb/oszlop 0-val kezdődik.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
output:
First row: [1 2 3] Second row: [4 5 6]
In Python, mint sok más nyelven,
- A vessző előtti értékek a sorokat jelölik
- A jogokon lévő érték az oszlopokat jelenti.
- Ha oszlopot szeretne kijelölni, az oszlopindex elé a : értéket kell hozzáadnia.
- : azt jelenti, hogy a kiválasztott oszlop összes sorát szeretné.
print('Second column:', e[:,1])
Second column: [2 5]
A második sor első két értékének visszaadásához. Használja a : gombot az összes oszlop kiválasztásához másodpercig
## Second Row, two values print(e[1, :2]) [4 5]
Statisztikai függvények in Python
A NumPy számos hasznos statisztikai függvényt tartalmaz a tömb adott elemei közül a minimum, maximum, percentilis szórás és variancia stb. meghatározásához. A függvények magyarázata a következő -
A Numpy az alább felsorolt robusztus statisztikai funkcióval van felszerelve
Funkció | Hülye |
---|---|
Min | np.min() |
max | np.max() |
Jelenteni | np.mean() |
Középső | np.median() |
Szabvány eltérés | np.std() |
Vegye figyelembe a következő tömböt:
Példa:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
output:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Példa a NumPy statisztikai függvényre
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
output:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Mi az a numpy dot termék?
Numpy.dot termék egy hatékony könyvtár a mátrixszámításhoz. Például kiszámíthatja a pontszorzatot az np.dot paranccsal. A Numpy.dot szorzat a és b pontszorzata. numpy.dot() in Python kezeli a 2D tömböket és mátrixszorzásokat hajt végre.
Syntax:
numpy.dot(x, y, out=None)
paraméterek
Itt,
x, y: Bemeneti tömbök. Az np.dot() függvény működéséhez az x-nek és az y-nak egyaránt 1-D vagy 2-D-nek kell lennie
ki: Ez a visszaadandó 1-D tömb skalár kimeneti argumentuma. Ellenkező esetben az ndarray-t vissza kell adni.
Visszatér
A numpy.dot() függvény in Python két x és y tömb pontszorzatát adja vissza. A dot() függvény skalárt ad vissza, ha x és y is 1-D; ellenkező esetben egy tömböt ad vissza. Ha „out” van megadva, akkor visszaadjuk.
Az emelések
Pontos termék be Python ValueError kivételt vet fel, ha x utolsó dimenziója nem azonos méretű y második utolsó dimenziójával.
Példa:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
output:
14
Mátrixszorzás be Python
A Numpy matmul() függvény 2 tömb mátrixszorzatát adja vissza. Íme, hogyan működik
1) 2-D tömbök, normál terméket ad vissza
2) Méretek > 2, a termék mátrixkötegként kezelendő
3) Az egydimenziós tömb először mátrixsá válik, majd kiszámítja a szorzatot
Syntax:
numpy.matmul(x, y, out=None)
Itt,
x, y: Bemeneti tömbök. skalár nem megengedett
ki: Ez nem kötelező paraméter. Általában a kimenetet az ndarray tárolja
Példa:
Ugyanígy kiszámolhatja a mátrixok szorzását az np.matmul segítségével
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
output:
array([[19, 22], [43, 50]])
döntő
Végül, de nem utolsósorban, ha ki kell számítanunk a determinánst, használhatjuk az np.linalg.det(). Vegye figyelembe, hogy a numpy gondoskodik a méretről.
Példa:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
output:
-2.000000000000005
Összegzésként
- Python egy nyílt forráskódú könyvtár, amely itt érhető el Python, amely segít a matematikai, tudományos, mérnöki, ill adattudományi programozás.
- numpy.zeros() vagy np.zeros Python A függvény nullákkal teli mátrix létrehozására szolgál.
- numpy.ones() in Python akkor használható, amikor inicializálja a súlyokat a TensorFlow és más statisztikai feladatok első iterációja során.
- Python A NumPy Reshape függvény egy tömb alakítására szolgál az adatok megváltoztatása nélkül.
- Python A NumPy Flatten függvény a tömb egydimenziós másolatának visszaadására szolgál.
- A Numpy.hstack egy függvény Python amelyet a bemeneti tömbök sorozatainak vízszintes egymásra halmozására használnak egyetlen tömb létrehozása érdekében.
- A Numpy.vstack egy függvény Python amelyet a bemeneti tömbök sorozatainak függőleges egymásra halmozására használnak egyetlen tömb létrehozása érdekében.
- A numpy.arange() egy beépített numpy függvény, amely egy meghatározott intervallumon belül egyenletesen elosztott értékeket tartalmazó ndarray objektumot ad vissza.
- A Numpy.dot termék egy hatékony könyvtár a mátrixszámításhoz.
- A Numpy matmul() függvény 2 tömb mátrixszorzatát adja vissza.