SciPy interp1d Interpolations maskierten Array

stimmen
0

Ich habe das maskierte Array (Spielzeug Beispiel) - [1 2 3 4 -- 6]

points = [1, 2, 3, 4, 0, 6]
mask = [0, 0, 0, 0, 1, 0]
points = ma.array(points, mask=mask)

Und ich möchte es auf eine beliebige Anzahl von 6 Dimensionen zu interpolieren, zum Beispiel 6. Meine Interpolation Kriterien ist, dass sie maskiert Werte ignoriert, und diesen Index überspringen.

Unerwünschtes Verhalten, zum Beispiel mit lin = np.linspace(0, 1, 6):

f = interp1d(lin, points, axis=0, kind='cubic')
f(lin) # [1  2 3 4 -8.8817842e-16 6]

Stattdessen erwarte ich es wie zu verhalten:

compressed_lin = [0, 0.2, 0.4, 0.6, 1]
compressed_points = np.array([1,2,3,4,6])
f = interp1d(compressed_lin, compressed_points, axis=0, kind='cubic')
f(lin) # [1 2 3 4 5 6]

Wirkliche Daten:

Meine Daten sind in der Form [100, 100, 2], so dass sie nicht so einfach , wie die maskierten Werte von a zu verbergen linspaceder Größe 100.

Veröffentlicht am 19/03/2020 um 21:51
quelle vom benutzer
In anderen Sprachen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more