Python saraksti aizstāj masīvus, taču tie nespēj nodrošināt nepieciešamo veiktspēju, aprēķinot lielas skaitlisko datu kopas.
Lai risinātu šo problēmu, mēs izmantojam NumPy bibliotēka no Python. NumPy piedāvā masīva objektu ar nosaukumu ndarray . Tās ir līdzīgas standarta Python sekvencēm, taču atšķiras dažos galvenajos faktoros.
Kas ir NumPy masīvs?
NumPy masīvs ir daudzdimensiju datu struktūra, kas ir Python zinātniskās skaitļošanas pamatā.
Visas vērtības masīvā ir viendabīgas (vienāda datu tipa).
Tie piedāvā automātisku vektorizāciju un apraidi.
Tie nodrošina efektīvu atmiņas pārvaldību, ufuncs (universālās funkcijas), atbalsta dažādus datu tipus un ir elastīgi ar indeksēšanu un sagriešanu.
Izmēri masīvos
NumPy masīviem var būt vairākas dimensijas, ļaujot lietotājiem uzglabāt datus daudzslāņu struktūrās.
Masīva izmēri:
| Vārds | Piemērs |
| 0D (nulles dimensijas) | Skalārs - viens elements |
| 1D (viendimensijas) | Vektors — veselu skaitļu saraksts. |
| 2D (divdimensiju) | Matrica — datu izklājlapa |
| 3D (trīsdimensiju) | Tensors- Krāsu attēla saglabāšana |
Izveidojiet masīva objektu
NumPy masīva objekti ļauj mums strādāt ar masīviem Python. Masīva objekts tiek izsaukts ndarray .
NumPy bibliotēkas funkcija array() izveido ndarray.
Python3
cik pilsētu ir ASV
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])> |
>
>
Izvade
[1,2,3,4,5,6]>
Mēs varam arī izveidot NumPy masīvu, izmantojot sarakstu un Tuple.
Izveidojiet NumPy masīvu no saraksta
Varat izmantot np aizstājvārdu, lai izveidotu a ndarray sarakstu izmantojot masīva() metodi.
li = [1,2,3,4] numpyArr = np.array(li)>
vai
numpyArr = np.array([1,2,3,4])>
Saraksts tiek nodots metodei array(), kas pēc tam atgriež masīvu ar tiem pašiem elementiem.
1. piemērs: Šis piemērs parāda, kā inicializēt masīvu no saraksta.
Python3
pseidokods java
pārvērst virkni uz json java
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)> |
>
>
Izvade:
[1 2 3 4]>
Iegūtais masīvs izskatās tāpat kā saraksts, bet ir NumPy objekts.
2. piemērs: Ņemsim piemēru, lai pārbaudītu, vai numpyArr ir NumPy objekts. Šajā piemērā mēs izmantojam funkciju array (), lai pārvērstu sarakstu par NumPy masīvu un pēc tam pārbaudītu, vai tas ir NumPy objekts.
Python3
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> > print>(>'li ='>, li,>'and type(li) ='>,>type>(li))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
>
Izvade:
li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Kā redzat, li ir saraksta objekts, savukārt numpyArr ir NumPy masīva objekts.
Izveidojiet NumPy masīvu no korektora
Jūs varat izgatavot ndarray no a korts izmantojot līdzīgu sintaksi.
tup = (1,2,3,4) numpyArr = np.array(tup)>
vai
numpyArr = np.array((1,2,3,4))>
Šis piemērs ilustrē, kā izveidot masīvu no kortedža. Šeit mēs izmantojam funkciju array (), lai pārveidotu korešu par NumPy masīvu.
Python3
virkne java metodēs
import> numpy as np> > tup>=> (>1>,>2>,>3>,>4>)> numpyArr>=> np.array(tup)> > print>(>'tup ='>, tup,>'and type(tup) ='>,>type>(tup))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
c# koda piemēri
>
Izvade:
tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Ņemiet vērā, ka numpyArr vērtība paliek nemainīga jebkuram no diviem reklāmguvumiem.
NumPy masīvi pret iebūvētajām Python sekvencēm
- Atšķirībā no sarakstiem, masīvi ir fiksēta izmēra, un, mainot masīva lielumu, tiks izveidots jauns masīvs, bet sākotnējais masīvs tiks dzēsts.
- Visi masīva elementi ir viena veida.
- Masīvi ir ātrāki, efektīvāki un prasa mazāku sintakse nekā standarta Python sekvences.
Piezīme: Dažādas zinātniskas un matemātiskas Python pakotnes izmanto Numpy. Tie var izmantot ievadi kā iebūvētu Python secību, taču tie, visticamāk, pārveidos datus NumPy masīvā, lai panāktu ātrāku apstrādi. Tas izskaidro nepieciešamību saprast NumPy.
Kāpēc Numpy Array ir tik ātrs?
Numpy masīvi ir rakstīti galvenokārt C valoda . Rakstot C valodā, masīvi tiek glabāti blakus esošās atmiņas vietās, kas padara tos pieejamus un vieglāk manipulējamus. Tas nozīmē, ka varat iegūt C koda veiktspējas līmeni, vienkārši rakstot Python programmu.
- Homogēni dati: Masīvi glabā viena un tā paša datu tipa elementus, padarot tos kompaktākus un efektīvākus par atmiņu nekā saraksti.
- Fiksētais datu tips: Masīviem ir fiksēts datu tips, kas samazina atmiņas slodzi, novēršot nepieciešamību saglabāt katra elementa tipa informāciju.
- Blakus esošā atmiņa: Masīvi glabā elementus blakus esošajās atmiņas vietās, samazinot sadrumstalotību un nodrošinot efektīvu piekļuvi.

Numpy Array atmiņas piešķiršana
Ja jūsu sistēmā nav instalēts NumPy, varat to izdarīt, veicot šīs darbības. Pēc NumPy instalēšanas varat to importēt savā programmā šādi
import numpy as np>
Piezīme: Šeit np ir plaši izmantots NumPy aizstājvārds.
Datu piešķiršana Numpy Array
Programmā NumPy dati tiek pastāvīgi izvietoti atmiņā, ievērojot labi definētu izkārtojumu, kas sastāv no datu bufera, formas un soļiem. Tas ir svarīgi efektīvai datu piekļuvei, vektorizētām darbībām un savietojamībai ar zema līmeņa bibliotēkām, piemēram, BLAS un LAPACK .
- Datu buferis: Datu buferis programmā NumPy ir viens plakans atmiņas bloks, kurā tiek glabāti faktiskie masīva elementi neatkarīgi no tā izmēriem. Tas nodrošina efektīvu elementu darbību un piekļuvi datiem.
- Forma: Masīva forma ir veselu skaitļu kopa, kas apzīmē izmērus pa katru asi. Katrs vesels skaitlis atbilst masīva lielumam noteiktā dimensijā, kas nosaka elementu skaitu katrā asī un ir būtisks masīva pareizai indeksēšanai un pārveidošanai.
- Soļi: Soļi ir veselu skaitļu kopas, kas nosaka baitu skaitu, kas jāveic katrā dimensijā, pārejot no viena elementa uz nākamo. Tie nosaka atstarpi starp elementiem atmiņā un mēra, cik baitu ir nepieciešams, lai pārvietotos no viena elementa uz citu katrā dimensijā.

Secinājums
NumPy masīvs Python ir ļoti noderīga datu struktūra, kas ļauj mums veikt dažādas zinātniskas darbības ar datiem. Tā ir ļoti atmiņu taupoša datu struktūra un piedāvā daudz dažādu priekšrocību salīdzinājumā ar citām Python sekvencēm.
Šajā apmācībā mēs esam detalizēti izskaidrojuši NumPy masīvus. Mēs esam apskatījuši definīciju, dimensiju, kāpēc tas ir ātri un kā datu piešķiršana darbojas masīvā. Pēc šīs apmācības pabeigšanas jūs iegūsit pilnīgas padziļinātas zināšanas par NumPy masīvu un varēsiet to ieviest savos Python projektos.