如何从 python 中的一组指数中找到最大数
How to find largest number from a set of exponential numbers in python
我有一个指数列表列表如下:
[[ 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 中每个列表中的最大数字?
largests = [max(lst) for lst in lists]
根据问题中的格式,您似乎有一个 numpy 数组。如果是这种情况,您最好使用内置的 numpy 操作。在这种情况下,可能 arr.max(axis=1)
。例如:
>>> 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.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 中每个列表中的最大数字?
largests = [max(lst) for lst in lists]
根据问题中的格式,您似乎有一个 numpy 数组。如果是这种情况,您最好使用内置的 numpy 操作。在这种情况下,可能 arr.max(axis=1)
。例如:
>>> 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 数组,您可以将其用于其他计算等。