Tässä opetusohjelmassa opit Python-matriisimoduulista, taulukoiden ja luetteloiden eroista sekä siitä, miten ja milloin niitä käytetään esimerkkien avulla.
Huomaa: Kun ihmiset sanovat matriiseja Pythonissa, he puhuvat useammin kuin ei, he puhuvat Python-luetteloista . Jos näin on, käy Python-luettelon opetusohjelmassa.
Tässä opetusohjelmassa keskitymme moduuliin nimeltä array
. array
Moduuli antaa meille mahdollisuuden tallentaa kokoelma numeerisia arvoja.
Python-taulukoiden luominen
Numeeristen arvojen taulukon luomiseksi meidän on tuotava array
moduuli. Esimerkiksi:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Tuotos
taulukko ('d', (1.1, 3.5, 4.5))
Tässä loimme tyyppiryhmän float
. Kirjain d
on tyyppikoodi. Tämä määrittää taulukon tyypin luomisen aikana.
Yleisesti käytetyt tyyppikoodit on lueteltu seuraavasti:
Koodi | C Tyyppi | Python-tyyppi | Pienimmät tavut |
---|---|---|---|
b | allekirjoitettu merkki | int | 1 |
B | allekirjoittamaton merkki | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | allekirjoitettu lyhyeksi | int | 2 |
H | allekirjoittamaton lyhyt | int | 2 |
i | allekirjoitettu kansainvälinen | int | 2 |
I | allekirjoittamaton int | int | 2 |
l | allekirjoitettu pitkään | int | 4 |
L | allekirjoittamaton pitkä | int | 4 |
f | kellua | kellua | 4 |
d | kaksinkertainen | kellua | 8 |
Emme keskustele eri C-tyyppeistä tässä artikkelissa. Käytämme kahta tyyppikoodia tässä koko artikkelissa: i
kokonaislukuihin ja d
kellukkeisiin.
Huomaa : u
Unicode-merkkien tyyppikoodi on vanhentunut version 3.3 jälkeen. Vältä käyttämästä niin paljon kuin mahdollista.
Python-taulukkoelementtien käyttö
Käytämme indeksejä päästäksesi matriisin elementteihin:
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))
Tuotos
Ensimmäinen elementti: 2 Toinen elementti: 4 Viimeinen elementti: 8
Huomaa : Hakemisto alkaa 0: sta (ei 1), joka on samanlainen kuin luettelot.
Viipalointi Python-taulukot
Voimme käyttää joukkoa kohteita ryhmässä viipalointioperaattorin avulla :
.
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
Tuotos
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))
Elementtien muuttaminen ja lisääminen
Taulukot ovat muutettavissa; niiden elementtejä voidaan muuttaa samalla tavalla kuin luetteloita.
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))
Tuotos
matriisi ('i', (0, 2, 3, 5, 7, 10)) matriisi ('i', (0, 2, 4, 6, 8, 10))
Voimme lisätä yhden kohteen matriisiin append()
menetelmän avulla tai lisätä useita kohteita extend()
menetelmällä.
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))
Tuotos
matriisi ('i', (1, 2, 3, 4)) taulukko ('i', (1, 2, 3, 4, 5, 6, 7))
Voimme myös ketjuttaa kaksi matriisia +
operaattorilla.
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)
Tuotos
taulukko ('i', (1, 3, 5, 2, 4, 6))
Python-taulukon elementtien poistaminen
Voimme poistaa yhden tai useamman kohteen taulukosta käyttämällä Pythonin del-käskyä.
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
Tuotos
array ('i', (1, 2, 3, 4)) Traceback (viimeisin puhelu viimeisin): Tiedosto "", rivi 9, tulostettuna (numero) # Virhe: taulukkoa ei ole määritetty NameError: name 'number' is ei määritelty
Voimme käyttää remove()
menetelmää annetun kohteen pop()
poistamiseen ja menetelmää kohteen poistamiseen annetusta hakemistosta.
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))
Tuotos
matriisi ('i', (10, 11, 12, 13)) 12 matriisi ('i', (10, 11, 13))
Tarkista tämä sivu saadaksesi lisätietoja Python-taulukko- ja matriisimenetelmistä.
Python luetteloi Vs-taulukot
Pythonissa voimme käsitellä luetteloita taulukkoina. Emme kuitenkaan voi rajoittaa luetteloon tallennettujen elementtien tyyppiä. Esimerkiksi:
# elements of different types a = (1, 3.5, "Hello")
Jos luot taulukoita array
moduulin avulla, taulukon kaikkien elementtien on oltava samaa numerotyyppiä.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Tuotos
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.
Jos et todellakaan tarvitse matriiseja (matriisimoduulia voidaan tarvita C-koodiin liittymiseen), matriisimoduulin käyttöä ei suositella.