Czy można skonstruować matrycę numpy
z funkcji? W tym przypadku konkretnie funkcja jest absolutną różnicą dwóch wektorów: S[i,j] = abs(A[i] - B[j])
. Minimalny przykład roboczych, które używa zwykłego pytona:Wypełnienie tablicy numpy z różnicy dwóch wektorów
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)
Dawanie:
[[ 1. 3. 5.]
[ 1. 1. 3.]
[ 4. 2. 0.]]
Byłoby miło mieć konstrukcję, która wygląda mniej więcej tak:
def build_matrix(shape, input_function, *args)
gdzie mogę zdać funkcja wejściowa z jej argumentami i zachowaj przewagę prędkości numpy.
Jest to możliwe. Co próbujesz? – Marcin
@Marcin - jak stwierdzono w pytaniu, używam zwykłego starego podejścia Pythona do wypełnienia matrycy już teraz. Przeglądanie dokumentacji numpy sugeruje, że funkcja 'wektoryzacji' może być użyteczna, ale nadal nie widziałem jak zbudować macierz z funkcji w pierwszej kolejności. Gdybyś mógł wskazać mi właściwy kierunek (z dokumentacją), byłbym wdzięczny! – Hooked
To powinno być możliwe w zwykłym pythonie. Co próbujesz utworzyć swoją funkcję build_matrix? Na pewno coś masz i gdzieś tkwią, zamiast mieć nadzieję, że ktoś napisze to wszystko dla ciebie. – Marcin