NumPy-Arrays komprimieren

Muhammad Maisam Abbas 30 Januar 2023
  1. NumPy Zip Mit der Funktion list(zip())
  2. NumPy Zip Mit der Funktion numpy.stack()
  3. NumPy Zip Mit der Funktion numpy.column_stack()
NumPy-Arrays komprimieren

In diesem Tutorial werden die Methoden zum Komprimieren von zwei 1D-NumPy-Arrays in ein einzelnes 2D-NumPy-Array in Python vorgestellt.

NumPy Zip Mit der Funktion list(zip())

Wenn wir zwei 1D-Arrays haben und diese in einem 2D-Array zusammenpacken möchten, können wir die Funktion list(zip()) in Python verwenden. Bei diesem Ansatz werden die Arrays in einer Liste zusammengezippt. Die Funktion list(zip(a,b)) nimmt die Arrays a und b als Argument und gibt eine Liste zurück. Die gezippte Liste können wir dann mit der Funktion numpy.array() in ein Array umwandeln. Siehe das folgende Codebeispiel.

import numpy as np

a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])

c = np.array(list(zip(a, b)))

print(c)

Ausgabe:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Wir haben zunächst die beiden 1D-Arrays a und b mit der Funktion np.array() erstellt und mit der Funktion np.array(list(zip(a,b))) zusammengezippt.

Dieser Ansatz ist nicht sehr effizient, da wir zwischen Arrays und Listen konvertieren müssen.

NumPy Zip Mit der Funktion numpy.stack()

Wir können auch die Funktion numpy.stack() verwenden, um dasselbe Ziel wie im vorherigen Beispiel zu erreichen. Dieser Ansatz ist effizienter als der vorherige Ansatz, da keine Typumwandlung durchgeführt wird. Die Funktion numpy.stack() wird verwendet, um zwei oder mehr Arrays entsprechend einer angegebenen Achse zu verbinden. Wir können den Parameter axis gleich 1 angeben, um ein ähnliches Ergebnis wie im vorherigen Beispiel zu erhalten. Siehe das folgende Codebeispiel.

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])

c = np.stack((a, b), axis=1)

print(c)

Ausgabe:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Wir haben zunächst die beiden 1D-Arrays a und b mit der Funktion np.array() erstellt und mit der Funktion np.stack((a,b), axis=1) zusammengezippt.

NumPy Zip Mit der Funktion numpy.column_stack()

Die Funktion numpy.column_stack() ist eine weitere Methode, mit der in Python zwei 1D-Arrays in ein einziges 2D-Array gepackt werden können. Die Funktion numpy.column_stack() dient dazu, zwei oder mehr 1D-Arrays als Spalten zu einem einzigen 2D-Array zusammenzufügen. Für diesen Ansatz müssen wir keinen Achsparameter angeben. Siehe das folgende Codebeispiel.

import numpy as np

a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])

d = np.column_stack((a, b))

print(d)

Ausgabe:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Wir haben zunächst die beiden 1D-Arrays a und b mit der Funktion np.array() erstellt und mit der Funktion np.column_stack(a,b) zusammengezippt.

Dieser Ansatz ist der beste im Vergleich zu den beiden vorherigen Methoden. Weil es keine Typkonvertierung gibt und wir bei diesem Ansatz keine Achse angeben müssen.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn