Ich habe ein Array, so etwas wie:Upsample und interpolieren eine NumPy Array
array = np.arange(0,4,1).reshape(2,2)
> [[0 1
2 3]]
I mit höherer Abtastung dieses Array sowie interpoliert die resultierenden Werte für beide wollen. Ich weiß, dass ein guter Weg, um ein Array Upsampling unter Verwendung ist:
array = eratemp[0].repeat(2, axis = 0).repeat(2, axis = 1)
[[0 0 1 1]
[0 0 1 1]
[2 2 3 3]
[2 2 3 3]]
aber ich kann nicht einen Weg finden, um die Werte zu interpolieren, die ‚blockartig‘ Natur zwischen jedem 2x2 Abschnitt des Arrays zu entfernen.
Ich möchte etwas wie folgt aus:
[[0 0.4 1 1.1]
[1 0.8 1 2.1]
[2 2.3 3 3.1]
[2.1 2.3 3.1 3.2]]
So etwas wie dieses (Hinweis: diese werden nicht die genauen Zahlen). Ich verstehe, dass es nicht möglich ist, dieses bestimmte 2D-Gitter zu interpolieren, aber mit dem ersten Gitter in meiner Antwort sollte eine Interpolation während des Upsampling-Prozesses möglich sein, da Sie die Anzahl der Pixel erhöhen und somit die Lücken füllen können ".
Ich bin nicht zu sehr auf die Art der Interpolation, vorausgesetzt, die endgültige Ausgabe ist eine geglättete Oberfläche! Ich habe versucht, die scipy.interp2d Methode zu verwenden, aber ohne Erfolg, wäre dankbar, wenn jemand ihre Weisheit teilen könnte!
Möchten Sie eine zweidimensionale Interpolation durchführen?Ich sehe nicht, wie das funktionieren würde. Wenn Sie eine Achse interpolieren, unterbrechen Sie die Interpolation der anderen. Recht? – tnknepp
"Sie bekommen die Idee!" - Entschuldigung, ich verstehe es nicht ganz. Könnten Sie den Rest des 4x4-Arrays, das Sie erwarten, ausfüllen? –
Danke für Ihre Kommentare. Ich habe den Rest des Gitters ausgefüllt, um eine Vorstellung von meinem gewünschten Ergebnis zu geben. Ich verstehe, dass das Interpolieren des zweiten 2D-Gitters in meiner Antwort problematisch sein kann, aber es muss eine Möglichkeit geben, das erste Gitter zu interpolieren, während der Upsampling-Prozess stattfindet. –