¿Es posible construir una matriz numpy
a partir de una función? En este caso, específicamente, la función es la diferencia absoluta de dos vectores: S[i,j] = abs(A[i] - B[j])
. Un ejemplo de trabajo mínima que utiliza Python normal:Rellene la matriz numpy de la diferencia de dos vectores
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)
El dar:
[[ 1. 3. 5.]
[ 1. 1. 3.]
[ 4. 2. 0.]]
Sería bueno tener una construcción que se ve algo como:
def build_matrix(shape, input_function, *args)
donde puede pasar una la función de entrada con sus argumentos y conserva la ventaja de velocidad de numpy.
Esto es posible. ¿Qué has intentado? – Marcin
@Marcin - como se indica en la pregunta, estoy usando un enfoque simple de python para completar la matriz en este momento. Al revisar los documentos de numpy, sugiero que la función 'vectorize' podría ser útil, pero aún no vi cómo construir la matriz a partir de la función en primer lugar. Si pudieras señalarme en la dirección correcta (en cuanto a documentación), ¡te lo agradecería! – Hooked
Esto debería ser posible en python simple. ¿Qué has intentado crear tu función build_matrix? Seguramente tienes algo, y estás atrapado en algún lugar, en lugar de esperar que alguien lo escriba todo por ti. – Marcin