1

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

4

2 回答 2

5

z_min = -0.63417062312627426看起来是正确的答案。小心科学记数法。

于 2013-05-22T13:32:08.263 回答
3

np.min()返回最小的数,或“最大的”负数(如果有的话)。在这种情况下,索引 7 处的条目是最小条目。它是-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^-090.000000000106...

于 2013-05-22T13:36:25.447 回答