python中最小的浮点数

时间:2013-05-22 13:29:05

标签: python arrays numpy minimum

如何在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的用户,所以这让我感到困惑......

2 个答案:

答案 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...