logo

NumPy Array en Python

Les llistes de Python són un substitut de les matrius, però no ofereixen el rendiment necessari mentre es calculen grans conjunts de dades numèriques.

Per solucionar aquest problema fem servir el Biblioteca NumPy de Python. NumPy ofereix un objecte matriu anomenat ndarray . Són similars a les seqüències estàndard de Python, però difereixen en certs factors clau.



Què és una matriu NumPy?

La matriu NumPy és una estructura de dades multidimensional que és el nucli de la informàtica científica a Python.

Tots els valors d'una matriu són homogenis (del mateix tipus de dades).

Ofereixen vectorització i difusió automàtica.



Proporcionen una gestió eficient de la memòria, ufuncs (funcions universals), admeten diversos tipus de dades i són flexibles amb la indexació i el tall.

Dimensions en matrius

Les matrius NumPy poden tenir múltiples dimensions, cosa que permet als usuaris emmagatzemar dades en estructures multicapa.

Dimensions de la matriu:



Nom Exemple
0D (zerodimensional) Escalar: un sol element
1D (unidimensional) Vector: una llista de nombres enters.
2D (bidimensional) Matriu: un full de càlcul de dades
3D (tridimensional) Tensor: emmagatzemar una imatge en color

Crea un objecte de matriu

Els objectes de la matriu NumPy ens permeten treballar amb matrius en Python. S'anomena l'objecte matriu ndarray .

La funció array() de la biblioteca NumPy crea un ndarray.

Python 3




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

>

>

Sortida

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

També podem crear una matriu NumPy utilitzant List i Tuple.

retorn de matrius en java

Crea una matriu NumPy a partir d'una llista

Podeu utilitzar l'àlies np per crear ndarray d'a llista utilitzant el mètode array().

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

o

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

La llista es passa al mètode array() que després retorna una matriu amb els mateixos elements.

Exemple 1: L'exemple següent mostra com inicialitzar una matriu d'una llista.

Python 3




com convertir string en char

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

>

>

Sortida:

[1 2 3 4]>

La matriu resultant té el mateix aspecte que una llista, però és un objecte NumPy.

Exemple 2: Prenguem un exemple per comprovar si numpyArr és un objecte NumPy o no. En aquest exemple, estem utilitzant la funció array() per convertir la llista en una matriu NumPy i després comprovar si és un objecte NumPy o no.

Python 3




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

>

>

Sortida:

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

Com podeu veure, li és un objecte de llista mentre que numpyArr és un objecte de matriu de NumPy.

Creeu una matriu NumPy a partir d'una tupla

Podeu fer ndarray a partir d'a tupla utilitzant una sintaxi semblant.

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

o

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

L'exemple següent il·lustra com crear una matriu a partir d'una tupla. Aquí, estem utilitzant la funció array() per convertir la tupla en una matriu NumPy.

Python 3


cadena separada en java



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

>

>

Sortida:

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

Tingueu en compte que el valor de numpyArr segueix sent el mateix per a qualsevol de les dues conversions.

Matrius NumPy vs seqüències de Python incorporades

  • A diferència de les llistes, les matrius són de mida fixa, i canviar la mida d'una matriu donarà lloc a la creació d'una nova matriu mentre que la matriu original s'eliminarà.
  • Tots els elements d'una matriu són del mateix tipus.
  • Les matrius són més ràpides, més eficients i requereixen menys sintaxi que les seqüències estàndard de Python.

Nota: Diversos paquets científics i matemàtics basats en Python utilitzen Numpy. Poden prendre entrada com una seqüència de Python incorporada, però és probable que converteixin les dades en una matriu NumPy per aconseguir un processament més ràpid. Això explica la necessitat d'entendre NumPy.

Per què la matriu Numpy és tan ràpida?

Les matrius Numpy s'escriuen principalment llenguatge C . En ser escrites en C, les matrius s'emmagatzemen en ubicacions de memòria contigües, cosa que les fa accessibles i més fàcils de manipular. Això vol dir que podeu obtenir el nivell de rendiment d'un codi C amb la facilitat d'escriure un programa Python.

  1. Dades homogènies: Les matrius emmagatzemen elements del mateix tipus de dades, cosa que els fa més compactes i eficients en memòria que les llistes.
  2. Tipus de dades fixes: Les matrius tenen un tipus de dades fix, reduint la sobrecàrrega de memòria eliminant la necessitat d'emmagatzemar informació de tipus per a cada element.
  3. Memòria contigua: Les matrius emmagatzemen elements en ubicacions de memòria adjacents, reduint la fragmentació i permetent un accés eficient.
numpyarray

Assignació de memòria Numpy Array

Si no teniu NumPy instal·lat al vostre sistema, podeu fer-ho seguint aquests passos. Després d'instal·lar NumPy, podeu importar-lo al vostre programa d'aquesta manera

import numpy as np>

Nota: Aquí np és un àlies d'ús habitual per a NumPy.

Assignació de dades a Numpy Array

A NumPy, les dades s'assignen de forma contigua a la memòria, seguint un disseny ben definit que consisteix en la memòria intermèdia de dades, la forma i els passos. Això és essencial per a un accés eficient a les dades, operacions vectoritzades i compatibilitat amb biblioteques de baix nivell com BLAS i LAPACK .

  1. Buffer de dades: El buffer de dades a NumPy és un bloc de memòria únic i pla que emmagatzema els elements reals de la matriu, independentment de la seva dimensionalitat. Això permet operacions eficients per elements i accés a dades.
  2. Forma: La forma d'una matriu és una tupla de nombres enters que representa les dimensions al llarg de cada eix. Cada nombre enter correspon a la mida de la matriu al llarg d'una dimensió específica, que defineix el nombre d'elements al llarg de cada eix i és essencial per indexar i remodelar correctament la matriu.
  3. Passades: Els passos són tuples de nombres enters que defineixen el nombre de bytes a pas en cada dimensió quan es mou d'un element al següent. Determinen l'espai entre elements a la memòria i mesuren quants bytes es necessiten per passar d'un element a un altre en cada dimensió.

2

cadena de concat java

Conclusió

La matriu NumPy a Python és una estructura de dades molt útil i ens permet realitzar diverses operacions científiques sobre les dades. És una estructura de dades molt eficient en memòria i ofereix una gran varietat d'avantatges respecte a altres seqüències de Python.

En aquest tutorial, hem explicat en detall les matrius NumPy. Hem tractat la definició, la dimensionalitat, per què és ràpid i com funciona l'assignació de dades en una matriu. Després de completar aquest tutorial, obtindreu un coneixement complet i aprofundit de la matriu NumPy i podreu implementar-lo als vostres projectes Python.