Wie bekomme ich alle Werte aus einem numpy Array ohne einen bestimmten Index?

Ich habe ein numpy Array und ich möchte alle Elemente außer einem bestimmten Index abrufen. Betrachten Sie zum Beispiel das folgende Array

a = [0,1,2,3,4,5,5,6,7,8,9] 

Wenn ich Index 3 spezifiziere, dann sollte das Ergebnis sein

 a = [0,1,2,4,5,5,6,7,8,9] 

4 Solutions collect form web for “Wie bekomme ich alle Werte aus einem numpy Array ohne einen bestimmten Index?”

Wie die Größenänderung, das Entfernen von Elementen aus einem numpy Array ist eine langsame Operation (vor allem für große Arrays, da es erfordert Platzzuteilung und Kopieren aller Daten aus dem ursprünglichen Array auf das neue Array). Es sollte möglichst vermieden werden.

Oft können Sie es vermeiden, indem Sie mit einem maskierten Array statt. Zum Beispiel betrachten Sie das Array a :

 import numpy as np a = np.array([0,1,2,3,4,5,5,6,7,8,9]) print(a) print(a.sum()) # [0 1 2 3 4 5 5 6 7 8 9] # 50 

Wir können seinen Wert auf Index 3 maskieren und eine Summation durchführen , die maskierte Elemente ignoriert :

 a = np.ma.array(a, mask=False) a.mask[3] = True print(a) print(a.sum()) # [0 1 2 -- 4 5 5 6 7 8 9] # 47 

Maskierte Arrays unterstützen auch viele Operationen neben sum .

Wenn Sie es wirklich brauchen, ist es auch möglich, maskierte Elemente mit der compressed Methode zu entfernen:

 print(a.compressed()) # [0 1 2 4 5 5 6 7 8 9] 

Aber wie oben erwähnt, vermeiden Sie es, wenn möglich.

 a_new = np.delete(a, 3, 0) 

3 Hier ist der Index, den du entfernen möchtest, 0 ist die Achse (null in diesem Fall bei Verwendung von 1D-Array). Siehe np.delete

Hier ist ein Ein-Liner, wenn a ein numpy Array ist:

 >>> a[np.arange(len(a))!=3] array([0, 1, 2, 4, 5, 5, 6, 7, 8, 9]) 

Das sollte es tun:

 In [9]: np.hstack((a[:3], a[4:])) Out[9]: array([0, 1, 2, 4, 5, 5, 6, 7, 8, 9]) 

Wenn Leistung ein Problem ist, wird das folgende tun:

 In [22]: a[3:-1] = a[4:]; a = a[:-1] 
  • Wie kann man dtype für verschachtelte numpy ndarray setzen?
  • Konstruieren eines 3D-Würfels von Punkten aus einer Liste
  • Verwirrung zwischen numpy, scipy, matplotlib und pylab
  • Import-Fehler: Kein Modul namens numpy
  • Wie kann ich meine Liste formatieren, um es als Eingabe für svm.train () in opencv3.0 zu geben
  • Split Array auf Wert in numpy
  • Was ist der schnellste Weg, um zwei Spalten und die gleichen Zeilen einer 2D-Matrix zu tauschen?
  • Vectorize ist unbestimmt
  • Gibt es eine Numpy-Funktion, um den ersten Index von etwas in einem Array zurückzugeben?
  • Numpy array mit dtype Dezimal?
  • Interpolation und Extrapolation für große Arrays
  • Python ist die beste Programmiersprache der Welt.