我使用python 2.7.3,当我执行下面的代码段:numpy的阵列,之间差的/ = X与A = A/X
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = a/float(2**16 - 1)
print a
这将导致在他下面的输出:
>> array([[1.52590219e-05, 3.05180438e-05, 4.57770657e-05],
>> [6.10360876e-05, 7.62951095e-05, 9.15541314e-05]])
究竟不如预期,但是当我执行下面的代码:
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a /= float(2**16 - 1)
print a
我得到以下的输出:
>> array([[0, 0, 0],
>> [0, 0, 0]])
我预期的那样在前面的例子相同的输出,我不明白,不同的输出中,这似乎是使用a /= float(2**16 - 1)
VS a = a/float(2**16 - 1)
的结果。
[我重新打开此。它与最初提出的重复有关,但该问题的答案都不涉及涉及的dtype问题。有可能是另一个重复的地方,但它不是那个。] – DSM
@DSM同意,链接的问题真的不解释这里发生了什么。它解释了为什么有*可以*是一个不同的结果,但不是*为什么*在这种情况下发生。 – poke
相关问题:[numpy self division的意外行为](http://stackoverflow.com/q/15907484/832621) –