Python Array of Numeric Values

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 arraymodulen tillater oss å lagre en samling av numeriske verdier.

Opprette Python Arrays

For å opprette en rekke numeriske verdier, må vi importere arraymodulen. 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 floattyper. Brevet der 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: ifor heltall og dfor flottører.

Merk : uTypekoden 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 arraymodulen, 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.

Interessante artikler...