Ich verwende scipy.interpolate.interp2d
, um eine Interpolationsfunktion für eine Oberfläche zu erstellen. Ich habe dann zwei Arrays von realen Daten, für die ich interpolierte Punkte berechnen möchte. Wenn ich die beiden Arrays an die interp2d
Funktion übergebe, bekomme ich eine Anordnung aller Punkte, nicht nur der Punktpaare.SciPy interp2D für Koordinatenpaare
zu Meine Lösung ist, die zwei Arrays in eine Liste von Koordinatenpaaren und geben diese an die Interpolationsfunktion in einer Schleife ZIP:
f_interp = interpolate.interp2d(X_table, Y_table,Z_table, kind='cubic')
co_ords = zip(X,Y)
out = []
for i in range(len(co_ords)):
X = co_ords[i][0]
Y = co_ords[i][1]
value = f_interp(X,Y)
out.append(float(value))
Meine Frage ist, gibt es eine bessere (elegantere, Pythonic?), Um das gleiche Ergebnis zu erzielen?
Dank Andras, die Liste Comp funktioniert gut. Ich werde mir Griddata ansehen, wenn ich mehr Zeit habe - ich habe, wofür ich jetzt arbeiten muss, kann mir ein bisschen später die Beschleunigung ansehen. Ben – BMichell