Эффективный поиск индекса 2D-массива для строк, присутствующих в другом 2D-массиве.

У меня есть два 2D-массива, и я ищу наиболее эффективный способ найти индекс в одном массиве строк, присутствующих в другом массиве.

С помощью следующего ответа я придумал следующий код, который работает, но я понял, что его можно сделать более эффективно (я планирую использовать его для массива размером 4 миллиона):

import numpy as np

a = np.array([[ 2, 3, 4],
            [ 6, 7, 8],
            [ 7, 10, 9],
            [ 3, 2, 1]])

b = np.array([[ 2, 3, 4],
            [ 7, 10, 9]])

index = []

for elem in b:
    np.where((elem == a).all(axis=1))
    index.append(np.where((elem == a).all(axis=1))[0][0])

person Anthony Lethuillier    schedule 18.01.2018    source источник