Matrisoperationer i Python 2.7

Permalänk

Matrisoperationer i Python 2.7

Hej!

Började lära mig python för två veckor sedan för att använda det i en kurs i numerisk analys. Har alltid hittat svar på de flesta frågor via google men nu har jag ett lite mer specifikt problem jag inte hittat en lösning för.

Jag har en matris med funktioner. Jag vill kalla på alla dessa funktioner med ett argument och få ut en matris av samma storlek med resultat. Alltså i pseudo:
Matrix(Functions).call(argument) -> Matrix(Results)

Exempelkod nedan

def f1_1(x): return.... def f1_2(x) return.... def f2_1(x): return.... def f2_2(x) return.... J = [ [f1_1, f1_2], [f2_1, f2_2] ] x = 10 #pseudo: #result = J(x) for i in xrange(2): for j in xrange(2): print result[i][j]

Jag har scipy/numpy, använde vanlig multidimensionell lista i exempelkoden för lättläslighet.

Jag kan lösa problemet på lite olika sätt redan, till exempel genom att använda en vanlig lista istället för matris och sedan köra

J = [f1_1, f1_2, f2_1, f2_2] x0 = 10 #ful lösning result = map(lambda f : f(x0), J) matrix_result = [ result[:2], result[2:], ]

men undrar om det inte finns ett smidigt sätt att utföra allt detta via matriser.

Visa signatur

i7-7800x | ASUS Strix GTX 1080 | 64 GB RAM (for datascience stuff)

Permalänk

Här har du ett smidigt sätt

result = [[j(x) for j in i] for i in J]