Python NumPy õpetus algajatele: õppige näidetega
Milles on NumPy Python?
tuim on avatud lähtekoodiga teek, mis on saadaval Python, mis aitab matemaatika-, teadus-, inseneri- ja andmeteaduse programmeerimisel. See on väga kasulik raamatukogu matemaatiliste ja statistiliste toimingute tegemiseks Python. See töötab suurepäraselt mitmemõõtmeliste massiivide ja maatriksi korrutamise jaoks. Seda on lihtne C/-ga integreeridaC++ ja Fortran.
Iga teadusprojekti jaoks on NumPy teadmise tööriist. See on loodud töötama N-dimensioonilise massiivi, lineaaralgebra, juhuslike arvude, Fourier' teisendusega jne.
NumPy on programmeerimiskeel, mis tegeleb mitmemõõtmeliste massiivide ja maatriksitega. Lisaks massiividele ja maatriksitele toetab NumPy suurt hulka matemaatilisi tehteid. Selles osas vaatame läbi põhifunktsioonid, mida peate õpetuse jaoks teadmaTensorFlow. "
Miks kasutada NumPyt?
NumPy on mälu tõhusus, mis tähendab, et see suudab käsitleda suurt hulka andmeid, mis on juurdepääsetavamad kui ükski teine teek. Pealegi on NumPyga väga mugav töötada, eriti maatriksi korrutamiseks ja ümberkujundamiseks. Lisaks on NumPy kiire. Tegelikult õpivad TensorFlow ja Scikit kasutama NumPy massiivi, et arvutada maatriksi korrutamine tagaotsas.
NumPy installimine
NumPy teegi installimiseks vaadake meie õpetust Kuidas installida TensorFlow. NumPy on Anacondaga vaikimisi installitud.
Kaugjuhtumil pole NumPy installitud -
NumPy saate installida Anaconda abil:
conda install -c anaconda numpy
- In Jupyter Märkmik:
import sys !conda install --yes --prefix {sys.prefix} numpy
Importige NumPy ja kontrollige versiooni
Numpy importimise käsk on järgmine:
import numpy as np
Ülaltoodud kood nimetab Numpy nimeruumi ümber np-ks. See võimaldab meil lisada funktsiooni Numpy, meetodite ja atribuutide ette "np", selle asemel, et kirjutada "numpy". See on tavaline otsetee, mille leiate tüütust kirjandusest
NumPy installitud versiooni kontrollimiseks kasutage allolevat käsku:
print (np.__version__)
Väljund:
1.18.0
Mis on Python NumPy massiiv?
NumPy massiivid on natuke sarnased Python nimekirjad, kuid samal ajal siiski väga erinevad. Teemaga uustulnutele teeme selgeks, mis see täpselt on ja milleks see kasulik on.
Nagu nimigi ütleb, on NumPy massiiv numpy teegi keskne andmestruktuur. Raamatukogu nimi on tegelikult lühend sõnadest "Numeric Python” või „Arv Python".
NumPy massiivi loomine
Lihtsaim viis massiivi loomiseks Numpys on kasutada Python nimekiri
myPythonList = [1,9,8,3]
Pythoni loendi teisendamiseks numpy massiiviks, kasutades objekti np.massiivi.
numpy_array_from_list = np.array(myPythonList)
Loendi sisu kuvamiseks
numpy_array_from_list
Väljund:
array([1, 9, 8, 3])
Praktikas ei ole vaja deklareerida a Python Nimekiri. Operatsiooni saab kombineerida.
a = np.array([1,9,8,3])
MÄRKUSED: Numpy dokumentatsioonis on kirjas np.ndarray kasutamine massiivi loomiseks. See meetod on siiski soovitatav.
Tuplest saate luua ka numpy massiivi.
Matemaatiline Operamassiivi
Saate massiiviga teha matemaatilisi toiminguid, nagu liitmine, lahutamine, jagamine ja korrutamine. Süntaks on massiivi nimi, millele järgneb operatsioon (+.-,*,/), millele järgneb operand
Näide:
numpy_array_from_list + 10
Väljund:
array([11, 19, 18, 13])
See toiming lisab numpy massiivi igale elemendile 10.
Massiivi kuju
Massiivi kuju saate kontrollida objekti kujuga, millele eelneb massiivi nimi. Samamoodi saab tüüpi kontrollida dtypes abil.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Täisarv on väärtus ilma kümnendkohata. Kui loote massiivi kümnendkohaga, muutub tüüp ujuvaks.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2-mõõtmeline massiiv
Saate lisada mõõtme "," koomaga
Pange tähele, et see peab olema sulgudes []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3-mõõtmeline massiiv
Kõrgema mõõtme saab ehitada järgmiselt:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Eesmärk | kood |
---|---|
Loo massiiv | massiiv([1,2,3]) |
printida kujund | massiiv([.]).kujund |
Mis on numpy.zeros()?
numpy.zeros() või np.nullid Python funktsiooni kasutatakse nullidega täis maatriksi loomiseks. numpy.zeros() in Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.
numpy.zeros() funktsioon Süntaks
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parameetrid
Siin
- kuju: on numbilise nullmassiivi kuju
- Dtüüp: on andmetüüp numbrilistes nullides. See on valikuline. Vaikeväärtus on float64
- järjekord: Vaikimisi on C, mis on numpy.zeros() jaoks oluline rea stiil Python.
Python numpy.zeros() Näide
import numpy as np np.zeros((2,2))
Väljund:
array([[0., 0.], [0., 0.]])
Numpy nulli näide andmetüübiga
import numpy as np np.zeros((2,2), dtype=np.int16)
Väljund:
array([[0, 0], [0, 0]], dtype=int16)
Mis on numpy.ones()?
np.ones() funktsioon kasutatakse neid täis maatriksi loomiseks. numpy.ones() sisse Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.
Python numpy.ones() Süntaks
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parameetrid
Siin
- kuju: on np.oneside kuju Python Array
- Dtüüp: on andmetüüp tühistes. See on valikuline. Vaikeväärtus on float64
- järjekord: Vaikimisi on C, mis on oluline rea stiil.
Python numpy.ones() 2D massiiv andmetüübi näitega
import numpy as np np.ones((1,2,3), dtype=np.int16)
Väljund:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape() funktsioon sisse Python
Python NumPy ümberkujundamine funktsiooni kasutatakse massiivi kujundamiseks ilma selle andmeid muutmata. Mõnel juhul peate võib-olla muutma andmeid laiadest pikkadeks. Selleks saate kasutada funktsiooni np.reshape.
np.reshape() süntaks
numpy.reshape(a, newShape, order='C')
Siin
a: massiiv, mida soovite ümber kujundada
uus Kuju: Kujunevad uued soovid
järjekord: Vaikimisi on C, mis on oluline rea stiil.
NumPy ümberkujundamise näide
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Väljund:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() sisse Python
Python NumPy Flatten funktsiooni kasutatakse massiivi ühemõõtmelise koopia tagastamiseks. Kui tegelete mõne närvivõrguga (nt convnet), peate massiivi tasandama. Selleks saate kasutada np.flatten() funktsioone.
np.flatten() süntaks
numpy.flatten(order='C')
Siin
järjekord: Vaikimisi on C, mis on oluline rea stiil.
NumPy Flatteni näide
e.flatten()
Väljund:
array([1, 2, 3, 4, 5, 6])
Mis on numpy.hstack() Python?
Numpy.hstack on funktsioon sees Python mida kasutatakse sisendmassiivide järjestuste horisontaalseks virnastamiseks, et luua üks massiiv. Funktsiooni hstack() abil saate andmeid horisontaalselt lisada. See on NumPys väga mugav funktsioon.
Uurime hstacki sisse Python näitega:
Näide:
## 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)))
Väljund:
Horizontal Append: [1 2 3 4 5 6]
Milles on numpy.vstack() Python?
Numpy.vstack on funktsioon sees Python mida kasutatakse sisendmassiivide järjestuste vertikaalseks virnastamiseks, et luua üks massiiv. Funktsiooni vstack() abil saate andmeid vertikaalselt lisada.
Uurime seda näitega:
Näide:
## 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)))
Väljund:
Vertical Append: [[1 2 3] [4 5 6]]
Pärast NumPy vstacki ja hstacki uurimist õpime näidet NumPys juhuslike arvude genereerimiseks.
Loo juhuslik Numbers NumPy abil
Gaussi jaotuse jaoks juhuslike arvude genereerimiseks kasutage:
numpy.random.normal(loc, scale, size)
Siin
- Koht: keskmine. Jaotuskeskus
- Skaala: standardhälve.
- SUURUS: tagastamiste arv
Näide:
## 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]
Graafiku korral on jaotus sarnane järgmisele graafikule
NumPy Asarray funktsioon
Funktsiooni asarray() kasutatakse siis, kui soovite teisendada sisendi massiiviks. Sisend võib olla loendid, korteež, ndarray jne.
süntaksit:
numpy.asarray(data, dtype=None, order=None)[source]
Siin
andmed: andmed, mida soovite massiiviks teisendada
dtüüp: See on valikuline argument. Kui pole määratud, tuletatakse andmetüüp sisendandmetest
järjekord: Vaikimisi on C, mis on oluline rea stiil. Teine võimalus on F (Fortani stiilis)
Näide:
Vaatleme järgmist 2-D maatriksit, milles on neli rida ja neli veergu, mis on täidetud 1-ga
import numpy as np A = np.matrix(np.ones((4,4)))
Kui soovite maatriksi väärtust muuta, ei saa te seda teha. Põhjus on selles, et koopiat pole võimalik muuta.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Maatriks on muutumatu. Kui soovite lisada algsesse massiivi muudatusi, võite kasutada asarray'i. Vaatame, kas siis, kui soovite muuta kolmandate ridade väärtust väärtusega 2, toimub muudatusi.
np.asarray(A)[2]=2 print(A)
Koodi selgitus:
np.asarray(A): teisendab maatriksi A massiiviks
[2]: valige kolmandad read
Väljund:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Mis on numpy.arange()?
numpy.arange() on sisseehitatud numpy-funktsioon, mis tagastab ndarray-objekti, mis sisaldab kindla intervalli piires ühtlaselt paigutatud väärtusi. Näiteks soovite luua väärtusi vahemikus 1 kuni 10; saate kasutada np.arange() in Python funktsiooni.
süntaksit:
numpy.arange(start, stop, step, dtype)
Python NumPy vahemiku parameetrid:
- Avaleht: np.arange in intervalli algus Python funktsiooni.
- Peatus: intervalli lõpp.
- Samm: väärtuste vaheline kaugus. Vaikimisi samm on 1.
- Dtüüp: on massiivi väljundi tüüp NumPy arange in jaoks Python.
Näide:
import numpy np np.arange(1, 11)
Väljund:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Näide:
Kui soovite selle NumPy arange funktsiooni sammu muuta, sisestage Python Näiteks võite sulgudes lisada kolmanda numbri. See muudab sammu.
import numpy np np.arange(1, 14, 4)
Väljund:
array([ 1, 5, 9, 13])
NumPy Linspace'i funktsioon
Linspace annab ühtlase vahega proovid.
süntaksit:
numpy.linspace(start, stop, num, endpoint)
Siin
- Avaleht: jada algusväärtus
- Peatus: jada lõppväärtus
- Sisse: genereeritavate proovide arv. Vaikimisi on 50
- Lõpp-punkt: Kui Tõene (vaikimisi), on stop viimane väärtus. Kui Väär, siis stoppväärtust ei arvestata.
Näide:
Näiteks saab seda kasutada võrdsete vahedega 10 väärtuse loomiseks vahemikus 1 kuni 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Väljund:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Kui te ei soovi intervalli viimast numbrit lisada, saate määrata lõpp-punkti väärtuseks false
np.linspace(1.0, 5.0, num=5, endpoint=False)
Väljund:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy funktsioon sisse Python
LogSpace tagastab logiskaalal paaris vahedega numbrid. Logiruumil on samad parameetrid mis np.linspace'il.
süntaksit:
numpy.logspace(start, stop, num, endpoint)
Näide:
np.logspace(3.0, 4.0, num=4)
Väljund:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Lõpuks, kui soovite kontrollida massiivi elemendi mälumahtu, võite kasutada üksuste suurust
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Väljund:
16
Iga element võtab 16 baiti.
Indekseerimine ja sisselõikamine Python
Andmete viilutamine on numpyga triviaalne. Viilutame maatriksi “e”. Pange tähele, et sisse Python, peate ridade või veergude tagastamiseks kasutama sulgusid
Näide:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Pidage meeles, et numpy puhul algab esimene massiiv/veerg 0-st.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Väljund:
First row: [1 2 3] Second row: [4 5 6]
In Python, nagu paljud teised keeled,
- Väärtused enne koma tähistavad ridu
- Õiguste väärtus tähistab veerge.
- Kui soovite veergu valida, peate veeruindeksi ette lisama :.
- : tähendab, et soovite kõiki ridu valitud veerust.
print('Second column:', e[:,1])
Second column: [2 5]
Teise rea kahe esimese väärtuse tagastamiseks. Kasutate : kõigi veergude valimiseks kuni sekundini
## Second Row, two values print(e[1, :2]) [4 5]
Statistilised funktsioonid sisse Python
NumPy-l on päris mitu kasulikku statistilist funktsiooni massiivi antud elementide minimaalse, maksimumi, protsentiili standardhälbe ja dispersiooni jms leidmiseks. Funktsioone selgitatakse järgmiselt −
Numpy on varustatud tugeva statistilise funktsiooniga, nagu allpool loetletud
funktsioon | Nuhklik |
---|---|
min | np.min() |
max | np.max() |
Keskmine | np.mean() |
Mediaan | np.mediaan() |
Standardhälve | np.std() |
Kaaluge järgmist massiivi:
Näide:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Väljund:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
NumPy statistilise funktsiooni näide
### 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))
Väljund:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Mis on numpy dot toode?
Numpy.dot toode on võimas maatriksarvutuste teek. Näiteks saate punktkorrutise arvutada np.dot abil. Numpy.dot korrutis on a ja b punktkorrutis. numpy.dot() sisse Python käsitleb 2D massiive ja teostab maatrikskorrutusi.
süntaksit:
numpy.dot(x, y, out=None)
parameetrid
Siin
X, y: sisendmassiivid. Funktsiooni np.dot() toimimiseks peavad x ja y mõlemad olema 1-D või 2-D
välja: see on 1-D massiivi skalaari tagastamise väljundargument. Vastasel juhul tuleks ndarray tagastada.
Tagastamine
Funktsioon numpy.dot() in Python tagastab kahe massiivi x ja y punktkorrutise. Funktsioon dot() tagastab skalaari, kui nii x kui ka y on 1-D; vastasel juhul tagastab see massiivi. Kui antakse "out", siis see tagastatakse.
Tõstab
Punkti toode sisse Python tekitab ValueError erandi, kui x-i viimane mõõde ei ole sama suur kui y-i teine viimane mõõde.
Näide:
## 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)
Väljund:
14
Maatrikskorrutamine sisse Python
Funktsiooni Numpy matmul() kasutatakse kahe massiivi maatrikskorrutise tagastamiseks. See toimib järgmiselt
1) 2-D massiivid, tagastab tavalise toote
2) Mõõtmed > 2, toodet käsitletakse maatriksivirna
3) 1-D massiiv viiakse esmalt maatriksiks ja seejärel arvutatakse korrutis
süntaksit:
numpy.matmul(x, y, out=None)
Siin
X, y: sisendmassiivid. skalaarid pole lubatud
välja: see on valikuline parameeter. Tavaliselt salvestatakse väljund ndarrays
Näide:
Samamoodi saab arvutada maatriksite korrutamist np.matmuliga
### 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)
Väljund:
array([[19, 22], [43, 50]])
Determinant
Lõpuks, kui teil on vaja determinandi arvutada, võite kasutada np.linalg.det(). Pange tähele, et numpy hoolitseb mõõtmete eest.
Näide:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Väljund:
-2.000000000000005
kokkuvõte
- Python on avatud lähtekoodiga teek, mis on saadaval Python, mis aitab matemaatika-, teadus-, inseneri- ja andmeteaduse programmeerimine.
- numpy.zeros() või np.zeros Python funktsiooni kasutatakse nullidega täis maatriksi loomiseks.
- numpy.ones() sisse Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.
- Python Funktsiooni NumPy Reshape kasutatakse massiivi kujundamiseks ilma selle andmeid muutmata.
- Python Funktsiooni NumPy Flatten kasutatakse massiivi ühemõõtmelise koopia tagastamiseks.
- Numpy.hstack on funktsioon Python mida kasutatakse sisendmassiivide järjestuste horisontaalseks virnastamiseks, et luua üks massiiv.
- Numpy.vstack on funktsioon Python mida kasutatakse sisendmassiivide järjestuste vertikaalseks virnastamiseks, et luua üks massiiv.
- numpy.arange() on sisseehitatud numpy-funktsioon, mis tagastab ndarray-objekti, mis sisaldab kindla intervalli piires ühtlase vahega väärtusi.
- Toode Numpy.dot on võimas maatriksarvutuste teek.
- Funktsiooni Numpy matmul() kasutatakse kahe massiivi maatrikskorrutise tagastamiseks.