如何在Python中找到最少的浮点数? min()或array.min()不起作用。这是代码:
import numpy as np
z=np.array([[ -4.26141957e-01],
[ -2.26582552e-01],
[ -7.28807682e-03],
[ 2.72843324e-02],
[ -5.59146620e-02],
[ -2.06062340e-05],
[ 1.06954166e-09],
[ -6.34170623e-01],
[ 5.07841198e-02],
[ -1.89888605e-04]])
z_min=z.min()
给出了z_min = -0.63417062312627426
。我是Matlab的用户,所以这让我感到困惑......
答案 0 :(得分:5)
z_min = -0.63417062312627426
看起来是正确的答案。小心科学记数法。
答案 1 :(得分:3)
np.min()
返回最小的数字,或“最大”的负数(如果有的话)。在这种情况下,索引7处的条目是最小条目。 scientific notation为-6.34 * 10^-1
,长期为-0.634...
。
全部打印
也许这会有所帮助:
print "\n".join(["%+0.10f" % e for e in z])
-0.4261419570
-0.2265825520
-0.0072880768
+0.0272843324
-0.0559146620
-0.0000206062
+0.0000000011
-0.6341706230
+0.0507841198
-0.0001898886
验证您的答案
以下内容将显示只有一个条目具有此最小值。
z <= z.min()
array([[False],
[False],
[False],
[False],
[False],
[False],
[False],
[ True],
[False],
[False]], dtype=bool)
再举一个例子
最接近零的数字可以这样找到:
z[np.abs(z).argmin()]
科学记数法中的1.06954166e-09
= 1.069 * 10^-09
或长期的0.000000000106...
。