sto usando Python 2.7.3, quando eseguo il seguente pezzo di codice:serie NumPy, differenza tra una/= x vs. a = a/x
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = a/float(2**16 - 1)
print a
Questo si tradurrà in lui dopo uscita:
>> array([[1.52590219e-05, 3.05180438e-05, 4.57770657e-05],
>> [6.10360876e-05, 7.62951095e-05, 9.15541314e-05]])
Esattamente come previsto, ma quando eseguo il seguente pezzo di codice:
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a /= float(2**16 - 1)
print a
ottengo il seguente output:
>> array([[0, 0, 0],
>> [0, 0, 0]])
mi aspettavo la stessa uscita come nell'esempio precedente, non capisco la diversa ouput, che sembra essere il risultato di utilizzando a /= float(2**16 - 1)
vs a = a/float(2**16 - 1)
.
[sto riapertura questo . È correlato al duplicato proposto originale, ma nessuna delle risposte a questa domanda risolve il problema relativo al dtype. Probabilmente c'è un altro duplicato da qualche parte, ma non è quello.] – DSM
@DSM D'accordo, la domanda collegata non spiegava davvero cosa sta succedendo qui. Spiega perché * può * essere un risultato diverso, ma non * perché * accade in questo caso. – poke
Domanda correlata: [Comportamento imprevisto per numpy self division] (http://stackoverflow.com/q/15907484/832621) –