我创建了以下随机数组,并将其乘以常量但得到意外结果(零而不是我期望的答案):
In [4]: A = np.random.rand(1,11)
In [5]: A
Out[5]:
array([[ 0.15138551, 0.41573765, 0.0212214 , 0.44955909, 0.27013062,
0.37835199, 0.89712845, 0.95333785, 0.09920397, 0.2303608 ,
0.11246899]])
In [6]: A*(1/100)
Out[6]: array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
In [7]: A/100
Out[7]:
array([[ 0.00151386, 0.00415738, 0.00021221, 0.00449559, 0.00270131,
0.00378352, 0.00897128, 0.00953338, 0.00099204, 0.00230361,
0.00112469]])
这是什么原因?似乎非常违反直觉。
答案 0 :(得分:4)
您使用的是python2,1/100
是整数除法,结果为0
。
使用浮点数:
A * (1.0/100)
或使用将来的导入:
from __future__ import division
也可以为整数启用浮点除法。