Как я могу векторизовать следующий двойной цикл?
У меня есть одна матрица N на A и одна матрица N на B, где A и B могут отличаться, а N намного меньше, чем A и B. Я хочу создать матрицу A на B следующим образом , но в идеале без циклов:
import numpy as np
def foo(arr):
# can be anything - just an example so that the code runs
return np.sum(arr)
num_a = 12
num_b = 8
num_dimensions = 3
a = np.random.rand(num_dimensions, num_a)
b = np.random.rand(num_dimensions, num_b)
# this is the loop I want to eliminate:
output = np.zeros( (num_a, num_b) )
for i in xrange(num_a):
for j in xrange(num_b):
output[i,j] = foo(a[:,i] - b[:,j])
Есть идеи?