Python-Array numerischer Werte

In diesem Tutorial lernen Sie anhand von Beispielen das Python-Array-Modul, den Unterschied zwischen Arrays und Listen sowie deren Verwendung und Verwendung kennen.

Hinweis: Wenn Leute in Python Arrays sagen, sprechen sie meistens über Python-Listen . Wenn dies der Fall ist, besuchen Sie das Tutorial zur Python-Liste.

In diesem Tutorial konzentrieren wir uns auf ein Modul mit dem Namen array. Mit dem arrayModul können wir eine Sammlung numerischer Werte speichern.

Python-Arrays erstellen

Um ein Array numerischer Werte zu erstellen, müssen wir das arrayModul importieren . Beispielsweise:

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

Ausgabe

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

Hier haben wir ein Array vom floatTyp erstellt. Der Buchstabe dist ein Typcode. Dies bestimmt den Typ des Arrays während der Erstellung.

Häufig verwendete Typcodes sind wie folgt aufgeführt:

Code C Typ Python-Typ Min Bytes
b signierter char int 1
B vorzeichenloser char int 1
u Py_UNICODE Unicode 2
h kurz signiert int 2
H unsigned short int 2
i signiert int int 2
I unsigned int int 2
l lange unterschrieben int 4
L lange nicht signiert int 4
f schweben schweben 4
d doppelt schweben 8

Wir werden in diesem Artikel nicht auf verschiedene C-Typen eingehen. In diesem gesamten Artikel werden zwei Typcodes verwendet: ifür Ganzzahlen und dfür Gleitkommazahlen.

Hinweis : Der uTypcode für Unicode-Zeichen ist seit Version 3.3 veraltet. Vermeiden Sie es, so viel wie möglich zu verwenden.

Zugriff auf Python-Array-Elemente

Wir verwenden Indizes, um auf Elemente eines Arrays zuzugreifen:

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

Ausgabe

 Erstes Element: 2 Zweites Element: 4 Letztes Element: 8

Hinweis : Der Index beginnt ähnlich wie Listen bei 0 (nicht 1).

Python-Arrays schneiden

Mit dem Slicing-Operator können wir auf eine Reihe von Elementen in einem Array zugreifen :.

 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

Ausgabe

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

Elemente ändern und hinzufügen

Arrays sind veränderlich; Ihre Elemente können auf ähnliche Weise wie Listen geändert werden.

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

Ausgabe

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

Mit der append()Methode können wir dem Array ein Element hinzufügen oder mit der extend()Methode mehrere Elemente hinzufügen .

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

Ausgabe

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

Wir können auch zwei Arrays mit dem +Operator verketten .

 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)

Ausgabe

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

Python-Array-Elemente entfernen

Wir können ein oder mehrere Elemente mit der del-Anweisung von Python aus einem Array löschen.

 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

Ausgabe

 Array ('i', (1, 2, 3, 4)) Traceback (letzter Aufruf zuletzt): Datei "", Zeile 9, im Druck (Nummer) # Fehler: Array ist nicht definiert NameError: Name 'Nummer' ist nicht definiert

Wir können die remove()Methode verwenden, um das angegebene Element zu entfernen, und die pop()Methode, um ein Element am angegebenen Index zu entfernen.

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

Ausgabe

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

Auf dieser Seite erfahren Sie mehr über Python-Arrays und Array-Methoden.

Python listet Vs Arrays auf

In Python können wir Listen als Arrays behandeln. Wir können jedoch den Typ der in einer Liste gespeicherten Elemente nicht einschränken. Beispielsweise:

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

Wenn Sie mit dem arrayModul Arrays erstellen , müssen alle Elemente des Arrays vom gleichen numerischen Typ sein.

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

Ausgabe

 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.

Sofern Sie keine Arrays wirklich benötigen (Array-Modul wird möglicherweise für die Schnittstelle mit C-Code benötigt), wird die Verwendung des Array-Moduls nicht empfohlen.

Interessante Beiträge...