在执行以下代码时,我使用的是python 2.7.3:
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = a / float(2**16 - 1)
print a
这将产生以下输出:
^{pr2}$正如预期的那样,但是当我执行以下代码时:
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)
vsa = a / float(2**16 - 1)
的结果。在
From the documentation:
由于您的数组是一个整数数组,所以在使用就地操作时,结果将再次向下转换为整数。在
如果您更改数组以使其最初存储float,那么结果(即float)可以存储在原始数组中,您的代码将正常工作:
相关问题 更多 >
编程相关推荐