Ich verstehe nicht genau, wie der Reflect-Modus meine Arrays behandelt. Ich habe diese sehr einfache Array:Wie genau funktioniert der "reflect" -Modus für scipys ndimage filters?
import numpy as np
from scipy.ndimage.filters import uniform_filter
from scipy.ndimage.filters import median_filter
vector = np.array([[1.0,1.0,1.0,1.0,1.0],[2.0,2.0,2.0,2.0,2.0],[4.0,4.0,4.0,4.0,4.0],[5.0,5.0,5.0,5.0,5.0]])
print(vector)
[[1. 1. 1. 1. 1.] [2. 2. 2. 2. 2.] [4. 4. 4. 4. 4.] [5. 5. 5. 5. 5.]]
eine einheitliche Anwendung (Mittelwert) -Filter mit einer Fenstergröße von 3 ich folgendes:
filtered = uniform_filter(vector, 3, mode='reflect')
print(filtered)
[[1,33333333 1,33333333 1.33333333 1.33333333 1.33333333] [2.33333333 2.33333333 2.33333333 2.33333333 2.33333333] [3.66666667 3.66666667 3.66666667 3.66666667 3.66666667] [4,66666667 4,66666667 4,66666667 4,66666667 4,66666667]]
Wenn ich versuche, die Übung mit der Hand zu replizieren ich zu diesem Ergebnis bekommen. Original-Matrix in Grün, Fenster in Orange und Ergebnis in Gelb. Weiß sind "reflektierte" Beobachtungen.
Ergebnis ist:
Aber wenn ich eine Fenstergröße von Versuch 4 oder 5 Ich kann nicht die Ergebnisse replizieren können.
filtered = uniform_filter(vector, 4, mode='reflect')
print(filtered)
[[1,5 1,5 1,5 1,5 1,5] [2. 2. 2. 2. 2.] [3. 3. 3. 3. 3.] [4. 4. 4. 4 . 4.]]
es von Hand tun:
Und ich bekomme:
Wie wird das Fenster gehandhabt, wenn seine Größe gerade ist? Aber wie auch immer, wenn ich versuche, die Ergebnisse eines Fensters der Größe 5 und des Modus widerzuspiegeln, kann ich auch nicht. Obwohl ich denke, dass das Verhalten analog zu dem der Größe 3 ist.
In der Abbildung unten "Doing it hand:" haben Sie die obere Zeile Ihres erweiterten Arrays nicht korrekt ausgefüllt. Sie haben einfach den Wert "1" vertikal kopiert. Bei 'mode = 'reflect' sollten in der obersten Zeile über dem Hauptfeld (hellgelb) 2 Zeichen stehen. –
genau das möchte ich wissen, kannst du mir helfen, genau zu verstehen, wie der Modus funktioniert? für Fenstergröße n = 2,3, ..., etc?Ich würde akzeptieren, dass ich als Antwort darauf besonders interessiert bin, wie die Fenster funktionieren, wenn die Dimension eine gerade Zahl ist. – JEquihua