Ich habe einen Fall von seltsamem Verhalten von numpy diff:numpy diff seltsames Verhalten
a = list(img_arr[y_coord_1,:])
print a
print np.diff(a)
>>[62, 62, 62, 62, 62, 62, 62, 62, 63, 62, 96, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 66, 63, 64, 64, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 65, 65, 64, 63, 63, 63, 63, 63, 63, 63, 64, 64, 63, 63, 63, 63, 63, 64, 65, 65, 64, 63, 63, 63, 63]
>>[ 0 0 0 0 0 0 0 1 255 34 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 224 253 1 0 255
0 0 0 0 0 0 0 0 0 1 1 0 255 255 0 0 0 0
0 0 1 0 255 0 0 0 0 1 1 0 255 255 0 0 0]
Nun, wenn ich dies im Terminal laufen bekomme ich die richtige Antwort von
array([ 0, 0, 0, 0, 0, 0, 0, 1, -1, 34, 2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, -3, 1,
0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0,
0, 0, 0, 1, 1, 0, -1, -1, 0, 0, 0])
Welche Art von Dinge können dies verursachen - ich benutze ein paar andere kompilierte Bibliotheken in diesem Skript, wenn dies der Relevanz
Edit: Ich habe gerade festgestellt, dass es die negativen Zahlen, die falsch sind - und die obere Grenze ist sehr suspekt ie. Sieht aus wie ein dtype Problem.
Was ist 'a.dtype'? Ist es zufällig "np.uint8"? –
Das ist das korrekte Problem. Es ist ein Überlauffehler - fühle dich albern, weil du es vorher nicht bemerkt hast. Ich nahm an, dass der Befehl list würde zurück in Python Floats oder etwas konvertieren – user3684792
Calling 'list()' auf einem 'np.uint8' Array wird nur eine Liste von' np.uint8' Skalarwerte geben. Sie müssen Ihr Array explizit auf einen vorzeichenbehafteten Integer-Typ umwandeln. –