Elemente aus einem Array in NumPy entfernen

Vaibhav Vaibhav 10 Oktober 2023
  1. Elemente mit der Funktion numpy.delete() entfernen
  2. Elemente mit der Funktion numpy.setdiff1d() entfernen
Elemente aus einem Array in NumPy entfernen

In diesem Artikel erfahren Sie, wie Sie Elemente aus einem NumPy-Array auf zwei Arten entfernen können.

Elemente mit der Funktion numpy.delete() entfernen

Beziehen Sie sich auf den folgenden Code.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

Ausgabe:

[ 1  2  3  5  7  9 10]

Im obigen Code verwenden wir die Funktion delete() der Bibliothek NumPy. Die Funktion delete() akzeptiert drei Parameter, nämlich arr, obj und axis, und gibt ein NumPy-Array aus. Das arr ist das NumPy-Array, aus dem wir Elemente löschen möchten. obj ist eine Liste von Ganzzahlen. Diese Zahlen stellen die Indizes der Elemente dar, die aus dem Array gelöscht werden sollen. Schließlich ist die axis ein optionales Argument. axis bezieht sich auf die Achse, entlang der die vom obj anvisierten Elemente gelöscht werden sollen. Wenn diesem Parameter der Wert None zugewiesen wird, wird arr abgeflacht und das Löschen für dieses abgeflachte Array ausgeführt.

Wenn für diese Methode ein Index bereitgestellt wird, der außerhalb des Bereichs von arr liegt, wird wie üblich eine IndexError-Ausnahme ausgelöst.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7, 34]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)

Ausgabe:

Traceback (most recent call last):
  File "<string>", line 5, in <module>
File "<__array_function__ internals>", line 5, in delete
  File "/path/to/library/numpy/lib/function_base.py", line 4480, in delete
keep[obj,] = False
IndexError: index 34 is out of bounds for axis 0 with size 10

Weitere Informationen zu dieser Funktion finden Sie in der offizielle Dokumentation dieser Funktion hier.

Hier sind zwei weitere Beispiele zum Löschen in einem mehrdimensionalen NumPy-Array.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], 1)
print(modifiedArray)

Ausgabe:

[[ 1  4  5]
 [11 14 15]
 [21 24 25]]

Verwenden Sie None als Wert für den Parameter axis.

import numpy as np

myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], None)
print(modifiedArray)

Ausgabe:

[ 1  4  5 11 12 13 14 15 21 22 23 24 25]

Elemente mit der Funktion numpy.setdiff1d() entfernen

Dieses Mal verwenden wir die Funktion setdiff1d() von NumPy. Diese Funktion akzeptiert drei Parameter: ar1, ar2 und accept_unique. ar1 und ar2 sind zwei NumPy-Arrays. Und assume_unique ist ein optionales boolesches Argument. Der Standardwert ist False. Wenn es True ist, wird angenommen, dass die beiden Eingabearrays eindeutig sind, und diese Annahme kann die Berechnungszeit beschleunigen.

setdiff1d() gibt die eindeutigen Werte in ar1 zurück, die nicht in ar2 enthalten sind.

Beziehen Sie sich auf den folgenden Code.

import numpy as np

myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.setdiff1d(myArray, indexes)
print(modifiedArray)

Ausgabe:

[ 1  2  4  6  8  9 10]

Im Gegensatz zu numpy.delete() sind beide Arrays NumPy-Arrays mit tatsächlichen Elementen, jedoch keine Indizes.

Weitere Informationen zu dieser Funktion finden Sie in der offizielle Dokumentation dieser Funktion hier.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.