Я ищу эффективный способ получить по строкам пересечение двух двумерных нудистых ndarrays.В каждом ряду есть только одно пересечение.Например:
[[1, 2], ∩ [[0, 1], -> [1,
[3, 4]] [0, 3]] 3]
В лучшем случае следует игнорировать нули:
[[1, 2, 0], ∩ [[0, 1, 0], -> [1,
[3, 4, 0]] [0, 3, 0]] 3]
Мое решение:
import numpy as np
arr1 = np.array([[1, 2],
[3, 4]])
arr2 = np.array([[0, 1],
[0, 3]])
arr3 = np.empty(len(arr1))
for i in range(len(arr1)):
arr3[i] = np.intersect1d(arr1[i], arr2[i])
print(arr3)
# [ 1. 3.]
У меня около 1 миллиона строк, поэтомувекторизованные операции являются наиболее предпочтительными.Вы можете использовать другие пакеты Python.