logo

NumPy Array în Python

Listele Python sunt un substitut pentru matrice, dar nu reușesc să ofere performanța necesară în timp ce calculează seturi mari de date numerice.

Pentru a rezolva această problemă folosim Biblioteca NumPy de Python. NumPy oferă un obiect matrice numit ndarray . Ele sunt similare cu secvențele standard Python, dar diferă în anumiți factori cheie.



Ce este o matrice NumPy?

Matricea NumPy este o structură de date multidimensională care este nucleul calculului științific în Python.

Toate valorile dintr-o matrice sunt omogene (de același tip de date).

Ele oferă vectorizare automată și difuzare.



Ele oferă o gestionare eficientă a memoriei, ufuncs (funcții universale), acceptă diverse tipuri de date și sunt flexibile cu indexare și tăiere.

Dimensiuni în matrice

Matricele NumPy pot avea mai multe dimensiuni, permițând utilizatorilor să stocheze date în structuri multistratificate.

Dimensiunile matricei:



Nume Exemplu
0D (zero-dimensional) Scalar – Un singur element
1D (unidimensional) Vector- O listă de numere întregi.
2D (bidimensional) Matrix - O foaie de calcul cu date
3D (tridimensional) Tensor - Stocarea unei imagini color

Creați obiectul matrice

Obiectele matricei NumPy ne permit să lucrăm cu matrice în Python. Obiectul matrice este numit ndarray .

Funcția array() a bibliotecii NumPy creează un ndarray.

Python3




imagini de reducere
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])>

>

>

Ieșire

[1,2,3,4,5,6]>

De asemenea, putem crea o matrice NumPy folosind List și Tuple.

Creați matrice NumPy dintr-o listă

Puteți utiliza alias-ul np pentru a crea ndarray al unui listă folosind metoda array().

li = [1,2,3,4] numpyArr = np.array(li)>

sau

arbore binar de căutare vs arbore binar
numpyArr = np.array([1,2,3,4])>

Lista este transmisă metodei array() care returnează apoi o matrice cu aceleași elemente.

Exemplul 1: Următorul exemplu arată cum să inițializați o matrice dintr-o listă.

Python3




java end for bucla

import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)>

>

>

Ieșire:

[1 2 3 4]>

Matricea rezultată arată la fel ca o listă, dar este un obiect NumPy.

Exemplul 2: Să luăm un exemplu pentru a verifica dacă numpyArr este un obiect NumPy sau nu. În acest exemplu, folosim funcția array() pentru a converti lista într-o matrice NumPy și apoi verificăm dacă este un obiect NumPy sau nu.

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))>

>

>

Ieșire:

li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>

După cum puteți vedea, li este un obiect listă, în timp ce numpyArr este un obiect matrice al lui NumPy.

Creați o matrice NumPy dintr-un tuplu

Puteți face ndarray din a tuplu folosind o sintaxă similară.

tup = (1,2,3,4) numpyArr = np.array(tup)>

sau

numpyArr = np.array((1,2,3,4))>

Următorul exemplu ilustrează cum se creează o matrice dintr-un tuplu. Aici, folosim funcția array() pentru a converti tuplul într-o matrice NumPy.

Python3


program de moștenire în python



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))>

k algoritm de grupare

>

>

Ieșire:

tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>

Rețineți că valoarea numpyArr rămâne aceeași pentru oricare dintre cele două conversii.

NumPy Arrays vs secvențe Python încorporate

  • Spre deosebire de liste, matricele sunt de dimensiune fixă, iar modificarea dimensiunii unui tablou va duce la crearea unei noi matrice, în timp ce matricea originală va fi șters.
  • Toate elementele dintr-o matrice sunt de același tip.
  • Matricele sunt mai rapide, mai eficiente și necesită mai puțină sintaxă decât secvențele standard Python.

Notă: Diverse pachete științifice și matematice bazate pe Python folosesc Numpy. Acestea ar putea lua intrarea ca o secvență Python încorporată, dar este probabil să convertească datele într-o matrice NumPy pentru a obține o procesare mai rapidă. Aceasta explică necesitatea de a înțelege NumPy.

De ce este Numpy Array atât de rapid?

Matricele Numpy sunt scrise în mare parte limbajul C . Fiind scrise în C, matricele sunt stocate în locații de memorie adiacente, ceea ce le face accesibile și mai ușor de manipulat. Aceasta înseamnă că puteți obține nivelul de performanță al unui cod C cu ușurința de a scrie un program Python.

  1. Date omogene: Matricele stochează elemente de același tip de date, făcându-le mai compacte și mai eficiente din punct de vedere al memoriei decât listele.
  2. Tip de date fixe: Matricele au un tip de date fix, reducând supraîncărcarea memoriei prin eliminarea necesității de a stoca informații de tip pentru fiecare element.
  3. Memoria contiguă: Matricele stochează elemente în locații de memorie adiacente, reducând fragmentarea și permițând accesul eficient.
numpyarray

Alocarea memoriei Numpy Array

Dacă nu aveți NumPy instalat în sistemul dvs., puteți face acest lucru urmând acești pași. După instalarea NumPy, îl puteți importa în programul dvs. astfel

import numpy as np>

Notă: Aici np este un alias folosit în mod obișnuit pentru NumPy.

Alocarea datelor în Numpy Array

În NumPy, datele sunt alocate contiguu în memorie, urmând un aspect bine definit, constând din tampon de date, formă și pași. Acest lucru este esențial pentru accesul eficient la date, operațiuni vectorizate și compatibilitate cu biblioteci de nivel scăzut, cum ar fi BLAS și PACACK .

  1. Buffer de date: Bufferul de date din NumPy este un singur bloc de memorie plat care stochează elementele reale ale matricei, indiferent de dimensionalitatea acestuia. Acest lucru permite operațiuni eficiente în funcție de elemente și acces la date.
  2. Formă: Forma unui tablou este un tuplu de numere întregi care reprezintă dimensiunile de-a lungul fiecărei axe. Fiecare număr întreg corespunde mărimii matricei de-a lungul unei dimensiuni specifice, care definește numărul de elemente de-a lungul fiecărei axe și este esențială pentru indexarea și remodelarea corectă a matricei.
  3. Pasi: Pașii sunt tupluri de numere întregi care definesc numărul de octeți de pași în fiecare dimensiune atunci când treceți de la un element la altul. Ele determină distanța dintre elementele din memorie și măsoară câți octeți sunt necesari pentru a trece de la un element la altul în fiecare dimensiune.

2

Concluzie

Matricea NumPy în Python este o structură de date foarte utilă și ne permite să efectuăm diverse operații științifice asupra datelor. Este o structură de date foarte eficientă din punct de vedere al memoriei și oferă o mare varietate de avantaje față de alte secvențe Python.

În acest tutorial, am explicat în detaliu matricele NumPy. Am acoperit definiția, dimensionalitatea, de ce este rapidă și cum funcționează alocarea datelor într-o matrice. După finalizarea acestui tutorial, veți dobândi cunoștințe complete și aprofundate despre matricea NumPy și o veți putea implementa în proiectele dvs. Python.