Ich habe ein sehr seltsames Problem mit numpy.nonzero(). Es verhält sich gut für Werte, die nicht 1 oder -1 sind, aber für diese beiden scheint es zu seltsamen Ergebnissen zu führen.Numpy.nonzero verhält sich seltsam für Werte 1 oder -1
Zum Beispiel
goalmat = np.matrix([[2, 0, 1], [-1, 0, -1]])
macht
matrix([[ 2, 0, 1],
[-1, 0, -1]])
Nun numpy.nonzero mit (goalmat == x) funktioniert nur teilweise:
>>> np.nonzero(goalmat == 1)
(matrix([[0]]), matrix([[2]]))
>>> np.nonzero(goalmat == -1)
(matrix([[1, 1]]), matrix([[0, 2]]))
Und
>>> goalmat = np.matrix([[2, 2, 1], [-1, 1, -1]])
>>> goalmat
matrix([[ 2, 2, 1],
[-1, 1, -1]])
>>> np.nonzero(goalmat == 1)
(matrix([[0, 1]]), matrix([[2, 1]]))
>>> np.nonzero(goalmat == -1)
(matrix([[1, 1]]), matrix([[0, 2]]))
So
es scheint, die richtigen Standorte für 1 zu geben, wenn ich für -1 fragen ...
Bin ich zu mißbrauchen/Mißverständnis numpy.nonzero()?
, die wie die korrekte Ausgabe sieht für mich ... Für jeden wahren Ort, können Sie eine Matrix der Indizes für die 0-Achse und eine Matrix von Indizes für Achse 1 –
Du hast Recht> ___
Sorry, ich habe gerade die falschen Testläufe von der Shell genommen, du hattest vollkommen recht. Ich reparierte die Frage mit den wirklich seltsamen Ergebnissen, zumindest denke ich, dass sie komisch sind :) –