如何从python中的一组指数数字中找到最大数字

时间:2017-05-23 21:43:14

标签: python math exp

我有一个带有指数数字的列表列表如下:

[[  1.92043482e-04   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   2.41005634e-03   0.00000000e+00
    7.19330120e-04   0.00000000e+00   0.00000000e+00   1.42886875e-04
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   9.79279411e-05   7.88888657e-04   0.00000000e+00
    0.00000000e+00   1.40425916e-01   0.00000000e+00   1.13955893e-02
    7.36868947e-03   3.67091988e-04   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   1.72037105e-03   1.72377961e-03
    0.00000000e+00   0.00000000e+00   1.19532061e-01   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   3.37249481e-04
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   1.75111492e-03   0.00000000e+00
    0.00000000e+00   1.12639313e-02]
 [  0.00000000e+00   0.00000000e+00   1.10271735e-04   5.98736562e-04
    6.77961628e-04   7.49569659e-04   0.00000000e+00   0.00000000e+00
    2.91697850e-03   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   3.30257021e-04   2.46629275e-04
    0.00000000e+00   1.87586441e-02   6.49103144e-04   0.00000000e+00
    1.19046355e-04   0.00000000e+00   0.00000000e+00   2.69499898e-03
    1.48525386e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   1.18803119e-03
    3.93100829e-04   0.00000000e+00   3.76245304e-04   2.79537738e-02
    0.00000000e+00   1.20738457e-03   9.74669064e-06   7.18680093e-04
    1.61546793e-02   3.49360861e-04   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
    0.00000000e+00   0.00000000e+00]]

如何在python中找到每个列表中的最大数字?

2 个答案:

答案 0 :(得分:3)

根据问题中的格式,看起来你有一个numpy数组。如果是这种情况,您最好使用内置的numpy操作。在这种情况下,可能是arr.max(axis=1)。 e.g:

>>> a = np.arange(4, dtype=float).reshape(2, 2)
>>> a
array([[ 0.,  1.],
       [ 2.,  3.]])
>>> a.max(axis=1)
array([ 1.,  3.])

这比使用python的max函数更快(迭代可以直接在numpy数组数据上发生,而不必通过ndarray.__iter__)而作为另一个奖励,输出将是仍然是一个numpy数组,您可以将其用于其他计算等。

答案 1 :(得分:2)

largests = [max(lst) for lst in lists]