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

Példa véletlenszerű generálására Numbers a NumPy használatával
Példa véletlenszerű generálására Numbers a NumPy használatával

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.