Python polje številskih vrednosti

V tej vadnici boste s pomočjo primerov spoznali modul matrike Python, razliko med nizi in seznami ter kako in kdaj jih uporabiti.

Opomba: Ko ljudje v Pythonu rečejo polja, pogosteje govorijo o Pythonovih seznamih . V tem primeru obiščite vadnico za seznam Python.

V tej vadnici se bomo osredotočili na modul z imenom array. arrayModul nam omogoča, da shranite zbirko številčne vrednosti.

Ustvarjanje Python nizov

Če želite ustvariti niz številskih vrednosti, moramo uvoziti arraymodul. Na primer:

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

Izhod

 matrika ('d', (1.1, 3.5, 4.5))

Tu smo ustvarili vrsto floatvrst. Črka dje tipska koda. To določa vrsto matrike med ustvarjanjem.

Pogosto uporabljene tipske kode so navedene na naslednji način:

Koda Tip C Python Type Najmanj bajtov
b podpisan znak int 1.
B nepodpisani znak int 1.
u Py_UNICODE Unicode 2.
h podpisano kratko int 2.
H nepodpisana kratka int 2.
i podpisan medn int 2.
I nepodpisani int int 2.
l podpisal dolgo int 4.
L nepodpisano dolgo int 4.
f float float 4.
d dvojno float 8.

V tem članku ne bomo razpravljali o različnih vrstah C. V celotnem članku bomo uporabili dve vrsti kod: iza cela števila in dza float.

Opomba : Koda uvrste za znake Unicode je zastarela od različice 3.3. Izogibajte se čim večji uporabi.

Dostop do elementov matrike Python

Za dostop do elementov matrike uporabljamo indekse:

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

Izhod

 Prvi element: 2 Drugi element: 4 Zadnji element: 8

Opomba : Indeks se začne od 0 (ne 1) podobno kot pri seznamih.

Rezanje nizov Python

Do številnih elementov v matriki lahko dostopamo z operaterjem rezanja :.

 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

Izhod

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

Spreminjanje in dodajanje elementov

Nizi so spremenljivi; njihove elemente je mogoče spreminjati na podoben način kot sezname.

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

Izhod

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

V matriko lahko z append()metodo dodamo en element ali pa z metodo dodamo več elementov extend().

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

Izhod

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

Z uporabo +operatorja lahko združimo tudi dva polja .

 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)

Izhod

 matrika ('i', (1, 3, 5, 2, 4, 6)) 

Odstranjevanje elementov matrike Python

Z uporabo Pythonovega izkaza del lahko iz matrike izbrišemo enega ali več elementov.

 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

Izhod

 array ('i', (1, 2, 3, 4)) Traceback (zadnji zadnji klic): Datoteka "", vrstica 9, v tisku (številka) # Napaka: polje ni določeno ni opredeljeno

remove()Metodo lahko uporabimo za odstranitev danega elementa in pop()metodo za odstranjevanje elementa v danem indeksu.

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

Izhod

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

Na tej strani lahko izveste več o Python matriki in metodah matrike.

Python Seznami Vs Nizov

V Pythonu lahko sezname obravnavamo kot nize. Vendar ne moremo omejiti vrste elementov, shranjenih na seznamu. Na primer:

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

Če z arraymodulom ustvarite polja , morajo biti vsi elementi polja istega številskega tipa.

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

Izhod

 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.

Če matric v resnici ne potrebujete (za povezavo s kodo C je morda potreben modul matrike), uporaba modula matrike ni priporočljiva.

Zanimive Članki...