Entfernen Sie ein Tupel mit Nan in der Liste der Tupel – Python

Ich habe eine lange Liste von Tupeln und möchte jedes Tupel, das ein Nan in es mit Python hat zu entfernen.

Was ich derzeit habe: x = [('Aufzeichnungsstart', 0), (nan, 4), (nan, 7), …, ('Ereignismarker 1', 150)]

Ergebnis Ich suche: x = [('Aufnahmestart', 0), ('Ereignismarker 1', 150)]

Ich habe versucht, np.isnan und Varianten davon zu verwenden, aber habe keinen Erfolg gehabt und bekomme immer einen Fehler: ufunc 'isnan' wird nicht für die Eingabetypen unterstützt und die Eingänge konnten nicht sicher zu beliebigen unterstützten Typen gezwungen werden Die Gießregel "sicher"

Irgendwelche Vorschläge würden geschätzt !!

4 Solutions collect form web for “Entfernen Sie ein Tupel mit Nan in der Liste der Tupel – Python”

Sie könnten das Listenverständnis verwenden, das prüft, ob eines der Elemente in einem Tupel NaN ist. Check wird durch die erste Überprüfung der Art und dann mit math.isnan da es nicht für andere Typen funktioniert:

 import math x = [('Recording start', 0), (float('nan'), 4), (float('nan'), 7), ('Event marker 1', 150)] res = [t for t in x if not any(isinstance(n, float) and math.isnan(n) for n in t)] print(res) 

Ausgabe:

 [('Recording start', 0), ('Event marker 1', 150)] 

Mit Listenverständnis:

 x = [('Recording start', 0), (nan, 4), (nan, 7), ('Event marker 1', 150)] new = [i for i in x if nan not in i] 
 res = [n for n in x if not nan in n] 

Gib alle Objekte in x , die keine Objekte nan haben.

Zumindest bei meiner Python-Nutzung von nan retured die "nicht definierten Fehler", deshalb habe ich es von mir selbst definiert. Ich denke, Sie können eine Python-Filterfunktion für Ihre Bedürfnisse verwenden. Siehe das Beispiel:

 nan = float('nan') lst = [('Recording start', 0), (nan, 4), (nan, 7), ('Event marker 1', 150)] y = filter( lambda x: nan not in x, lst) print y 

[('Aufzeichnungsstart', 0), ('Ereignismarker 1', 150)]

  • Abfragen einer Liste von Tupeln in Datenbank
  • Erstellen Sie ein Tupel aus einer Zeichenfolge und einer Liste von Zeichenfolgen
  • Verwirrung beim Verständnis von Tupel und * Args in Python
  • Python: Verwenden der unteren Funktion auf Tupeln
  • Konvertieren von String zum Tupel und Hinzufügen zu Tupel
  • Wie konvertiere man ein Element Tupel in String?
  • Wie identifiziert man "Schlüssel" eines Tupels / Liste von 3-Item Tupel?
  • Auspacken eines Python-Tupels von links nach rechts?
  • Warum wird keine leere Liste zugewiesen (zB [] = "") ein Fehler?
  • Split einen String auf gleich große Chunks
  • Python konvertiert Tupel in String
  • Python ist die beste Programmiersprache der Welt.