Example:
Let
A = np.array([1,2,3,5,7]) B = np.array([11,13,17,19,23])
and I would like to create a matrix C of size (5,5) whose elements are
c_ij = f(a[i],b[j])
where f is a fixed function for example f(x,y) = x*y + x + y which means
c_ij = a[i]*b[j] + a[i] + b[j]
In the case where c_ij depends on i and j only and does not depend on the lists A and B, we can use np.fromfunction(lambda i,j: f(i,j), (5,5)) but it’s not the case.
I would like to know how we can do that ?
Advertisement
Answer
Is this what you want:
def bar(arr1, arr2, func):
ind1, ind2 = np.meshgrid(range(len(arr1)), range(len(arr2)))
x = arr1[ind1]
y = arr2[ind2]
return func(x, y)
bar(A, B, f)