Код: Выделить всё
import numpy as np
def f_m_common(V_R, V_A):
r = len(V_A)
c = len(V_R)
M_Common = np.zeros((r, c), dtype = np.uint8)
rows, cols = M_Common.shape
for i in range(rows):
set_1= set(V_A[i])
for j in range(cols):
set_2 = set(V_R[j])
common_elements = set_1.intersection(set_2)
M_Common [i][j] = len(common_elements )
return M_Common
arr1 = np.array([[1, 2, 3, 4, 5, 6], [1, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8]])
arr2 = np.array([[1, 2, 3, 4, 5, 6], [2, 3, 4, 5, 6, 8], [1, 2, 3, 7, 8, 9]])
M_Common_R = f_m_common(arr1 , arr2)
print(M_Common_R)
Код: Выделить всё
[[6 5 4]
[5 4 5]
[3 3 3]]
Мой вопрос: пока массивы становятся больше в обоих измерениях, вы можете себе представить, что это займет много времени. Так это самый быстрый способ сделать это или есть какой-нибудь другой метод, который вы, ребята, рекомендуете?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -2d-arrays