2016-10-28 3 views
0

Ich bin ein Looping über ein Array, um Daten zu extrahieren, aber es ist zu langsam. Gibt es eine Funktion in Numpy, die das schneller macht? Ich muss ein neues Array basierend auf Werten aus einem Array innerhalb eines Arrays erstellen.Numpy, neues Array basierend auf einem Array innerhalb eines Arrays

Erstellen Sie zum Beispiel ein Array mit Autos aus USA.

input: array = [['ford', 'USA'], ['volkswagen', 'Germany'], ['jeep', 'USA']] 

    output: new_array = [['ford', 'USA'], ['jeep', 'USA']] 

Antwort

1

ein Array von String dtype Unter der Annahme, können Sie die zweite Spalte und vergleichen Sie mit dem String 'USA' ein boolean-Array zu erhalten schneiden aus. Dieses boolesche Array könnte dann zur Indizierung in das Array verwendet werden, indem boolean-indexing verwendet wird, um gültige Zeilen auszuwählen und uns die gewünschte Ausgabe zu geben.

Somit würde die Implementierung einfach sein -

array[array[:,1] == 'USA'] 
+0

Thank you! @Divakar – elfving

+0

Wie würde ich es schreiben, wenn ich ein Ergebnis basierend auf zwei Werten möchte? Für Beispiel 'Jeep' und 'USA' – elfving

+0

@elfving Verwenden Sie 'np.in1d'. – Divakar

Verwandte Themen