Заполнить пустую матрицу из разности двух векторов

Можно ли построить матрицу numpyиз функции? Именно в этом случае функция представляет собой абсолютную разность двух векторов: S[i,j] = abs(A[i] - B[j]). Минимальный рабочий пример, использующий обычный python:

import numpy as np

A = np.array([1,3,6])
B = np.array([2,4,6])
S = np.zeros((3,3))

for i,x in enumerate(A):
    for j,y in enumerate(B):
        S[i,j] = abs(x-y)

Предоставление:

[[ 1.  3.  5.]
 [ 1.  1.  3.]
 [ 4.  2.  0.]]

Было бы неплохо иметь конструкцию, которая выглядит примерно так:

def build_matrix(shape, input_function, *args)

где я могу передать входную функцию с ее аргументами и сохранить преимущество в скорости numpy .

11
задан Hooked 14 March 2012 в 15:05
поделиться