Gegeben zwei numpy
Arrays mit der gleichen Länge, ich muss von beiden die gleichen Index-Elemente, die Null sind entfernen. Beispielsweise angesichts der ArraysEntfernen Sie Null Elemente mit dem gleichen Index von zwei Arrays
a = [5 9 2 0 1 4 9 0 8 1]
b = [1 0 3 1 2 4 2 0 3 2]
I bräuchten
a = [5 9 2 0 1 4 9 8 1]
b = [1 0 3 1 2 4 2 3 2]
d.h. zu erhalten, nur das Element, das einen Null-Wert in beiden Arrays hattevon beiden Arrays entfernt wurde. Ich habe diesen Ansatz versucht
import numpy as np
a = np.random.randint(0, 10, 10)
b = np.random.randint(0, 10, 10)
a_z_idx = [a != 0]
b_z_idx = [b != 0]
ab_z_idx = a_z_idx and b_z_idx
a = a[ab_z_idx]
b = b[ab_z_idx]
aber entfernt auch die Elemente, die Null in jedem Array sind, anstatt nur Elemente zu entfernen, die Null in der sie beide sind.
Meine tatsächlichen Arrays haben mehrere Millionen Elemente, also bin ich auf der Suche nach der effizientesten Methode.
Große Antwort Divakar! Weißt du, ob eine dieser Methoden merklich schneller ist als die andere? – Gabriel