Matrisoperationer i Python 2.7

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Jan 2014

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.

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

Trädvy Permalänk
Medlem
Registrerad
Aug 2011

Här har du ett smidigt sätt

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