Matrice Python de valori numerice

În acest tutorial, veți afla despre modulul matricei Python, diferența dintre tablouri și liste și cum și când să le utilizați cu ajutorul exemplelor.

Notă: Când oamenii spun matrici în Python, cel mai adesea, vorbesc despre liste Python . Dacă acesta este cazul, vizitați tutorialul cu lista Python.

În acest tutorial, ne vom concentra pe un modul numit array. arrayModulul ne permite să stocați o colecție de valori numerice.

Crearea matricelor Python

Pentru a crea o serie de valori numerice, trebuie să importăm arraymodulul. De exemplu:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Ieșire

 matrice („d”, (1.1, 3.5, 4.5))

Aici, am creat o serie de floattipuri. Litera deste un cod de tip. Aceasta determină tipul matricei în timpul creației.

Codurile de tip utilizate în mod obișnuit sunt enumerate după cum urmează:

Cod Tipul C Tipul Python Octeți min
b semnat char int 1
B char nesemnat int 1
u Py_UNICODE Unicode 2
h semnat scurt int 2
H scurt semnat int 2
i semnat int int 2
I nesemnat int int 2
l semnat lung int 4
L nesemnat lung int 4
f pluti pluti 4
d dubla pluti 8

Nu vom discuta diferite tipuri de C în acest articol. Vom folosi două coduri de tip în acest articol întreg: ipentru numere întregi și dpentru flotante.

Notă : uCodul de tip pentru caracterele Unicode este învechit de la versiunea 3.3. Evitați să utilizați cât mai mult posibil.

Accesarea elementelor de matrice Python

Folosim indici pentru a accesa elementele unui tablou:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Ieșire

 Primul element: 2 Al doilea element: 4 Ultimul element: 8

Notă : indexul începe de la 0 (nu 1) similar listelor.

Slicing Python Arrays

Putem accesa o serie de articole dintr-o matrice folosind operatorul de tranșare :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Ieșire

 array ('i', (62, 5, 42)) array ('i', (2, 5, 62)) array ('i', (52, 48, 5)) array ('i', (2 , 5, 62, 5, 42, 52, 48, 5))

Schimbarea și adăugarea elementelor

Tablourile sunt modificabile; elementele lor pot fi schimbate în mod similar cu listele.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Ieșire

 array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))

Putem adăuga un element la matrice folosind append()metoda sau putem adăuga mai multe elemente folosind extend()metoda.

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Ieșire

 array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))

De asemenea, putem concatena două matrice folosind +operatorul.

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Ieșire

 matrice („i”, (1, 3, 5, 2, 4, 6)) 

Eliminarea elementelor de matrice Python

Putem șterge unul sau mai multe articole dintr-o matrice folosind declarația Python.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Ieșire

 matrice ('i', (1, 2, 3, 4)) Traceback (ultimul apel cel mai recent): Fișier "", linia 9, în tipar (număr) # Eroare: matricea nu este definită Nume Eroare: numele 'număr' este nedefinit

Putem folosi remove()metoda pentru a elimina elementul dat și pop()metoda pentru a elimina un element la indexul dat.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Ieșire

 array ('i', (10, 11, 12, 13)) 12 array ('i', (10, 11, 13))

Consultați această pagină pentru a afla mai multe despre matricea Python și metodele matrice.

Python Listează Vs Matrice

În Python, putem trata listele ca tablouri. Cu toate acestea, nu putem constrânge tipul de elemente stocate într-o listă. De exemplu:

 # elements of different types a = (1, 3.5, "Hello") 

Dacă creați matrici folosind arraymodulul, toate elementele matricei trebuie să fie de același tip numeric.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Ieșire

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

Cu excepția cazului în care nu aveți nevoie cu adevărat de matrice (modulul matrice poate fi necesar pentru interfața cu codul C), utilizarea modulului matrice nu este recomandată.

Articole interesante...