I denne opplæringen lærer du om Python-array-modulen, forskjellen mellom matriser og lister, og hvordan og når du skal bruke dem ved hjelp av eksempler.
Merk: Når folk sier matriser i Python, snakker de oftere enn ikke om Python-lister . Hvis det er tilfelle, kan du gå til Python-listeopplæringen.
I denne opplæringen vil vi fokusere på en modul som heter array
. Den array
modulen tillater oss å lagre en samling av numeriske verdier.
Opprette Python Arrays
For å opprette en rekke numeriske verdier, må vi importere array
modulen. For eksempel:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Produksjon
array ('d', (1.1, 3.5, 4.5))
Her opprettet vi en rekke float
typer. Brevet d
er en typekode. Dette bestemmer typen matrise under opprettelsen.
Vanlige typekoder er oppført som følger:
Kode | C Type | Python Type | Min byte |
---|---|---|---|
b | signert røye | int | 1 |
B | usignert røye | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | signert kort | int | 2 |
H | usignert kort | int | 2 |
i | signert int | int | 2 |
I | usignert int | int | 2 |
l | signert lenge | int | 4 |
L | usignert lang | int | 4 |
f | flyte | flyte | 4 |
d | dobbelt | flyte | 8 |
Vi vil ikke diskutere forskjellige C-typer i denne artikkelen. Vi vil bruke to typekoder i hele denne artikkelen: i
for heltall og d
for flottører.
Merk : u
Typekoden for Unicode-tegn er utfaset siden versjon 3.3. Unngå å bruke så mye som mulig.
Få tilgang til Python Array Elements
Vi bruker indekser for å få tilgang til elementer i en matrise:
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))
Produksjon
Første element: 2 Andre element: 4 Siste element: 8
Merk : Indeksen starter fra 0 (ikke 1) som lister.
Slicing Python Arrays
Vi kan få tilgang til en rekke elementer i en matrise ved å bruke skiveroperatøren :
.
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
Produksjon
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))
Endre og legge til elementer
Arrays er mutable; elementene deres kan endres på samme måte som lister.
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))
Produksjon
array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))
Vi kan legge til ett element i matrisen ved hjelp av append()
metoden, eller legge til flere elementer ved hjelp av extend()
metoden.
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))
Produksjon
array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))
Vi kan også sammenkoble to matriser ved hjelp av +
operator.
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)
Produksjon
array ('i', (1, 3, 5, 2, 4, 6))
Fjerner Python Array Elements
Vi kan slette ett eller flere elementer fra en matrise ved hjelp av Pythons del-uttalelse.
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
Produksjon
array ('i', (1, 2, 3, 4)) Traceback (siste anrop sist): Fil "", linje 9, i utskrift (nummer) # Feil: array er ikke definert NameError: name 'number' er ikke definert
Vi kan bruke remove()
metoden for å fjerne det gitte elementet, og pop()
metoden for å fjerne et element ved den gitte indeksen.
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))
Produksjon
array ('i', (10, 11, 12, 13)) 12 array ('i', (10, 11, 13))
Sjekk denne siden for å lære mer om Python-array og array-metoder.
Python lister mot arrays
I Python kan vi behandle lister som matriser. Vi kan imidlertid ikke begrense typen elementer som er lagret i en liste. For eksempel:
# elements of different types a = (1, 3.5, "Hello")
Hvis du lager matriser ved hjelp av array
modulen, må alle elementene i matrisen være av samme numeriske type.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Produksjon
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.
Med mindre du egentlig ikke trenger matriser (array-modul kan være nødvendig for å grensesnitt med C-kode), anbefales ikke bruk av array-modulen.