Mam dwie tablice, słownie:Ustal argumenty gdzie przecinają dwie tablice numpy w Pythonie
a, b = np.array([13., 14., 15., 32., 33.]), np.array([15., 16., 17., 33., 34., 47.])
Muszę znaleźć indeksy wszystkich elementów w które nie są obecne w b. W powyższym przykładzie wynik to:
[0, 1, 3]
Ponieważ [0] A [1] i [3] są 13, 14 i 32, które nie są obecne w B. Zauważ, że nie chcę znać rzeczywistych wartości 13, 14 i 32. (W takim przypadku mógłbym użyć zestawu (a) .difference (set (b)). Interesuję się tylko wskaźnikami.
Jeśli to możliwe, odpowiedź powinna być "wektoryzowana", tzn. Nie należy używać pętli for.
Czy to tylko zbieg okoliczności w tym przykładzie, że są one zarówno sortowane tablice? (jeśli są posortowane w rzeczywistej wersji twojego problemu, możesz nadużyć tej właściwości) – usethedeathstar
Przepraszamy, użyłem posortowanych tablic, aby pomóc w czytaniu. Ale nadal jestem zainteresowany, aby usłyszeć, co zrobiłbyś z posortowanymi tablicami :) – astabada
Cóż, niestandardowy algorytm może uzyskać jeszcze większą złożoność przez nadużywanie faktu, że są one sortowane, (nie do końca pewne, jaką złożoność uzyskasz w końcu , ale zakładam, że lepiej niż cokolwiek robisz, jeśli nie masz tej właściwości) – usethedeathstar