Visa signatur
i7-7800x | ASUS Strix GTX 1080 | 64 GB RAM (for datascience stuff)
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)
Här har du ett smidigt sätt
result = [[j(x) for j in i] for i in J]
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.