在Python中计算列表值的平均值时,如何处理INF值?
我有一个列表L,其中包含大量的浮点元素 我的目标是计算L的平均值 我尝试使用sumL/lenL,np.meanL,…,但结果总是给出'inf',因为sumL也返回'inf' 我很确定这是memmory问题,python限制了存储某些值 我想知道处理这个问题的最佳做法是什么在Python中计算列表值的平均值时,如何处理INF值?,python,Python,我有一个列表L,其中包含大量的浮点元素 我的目标是计算L的平均值 我尝试使用sumL/lenL,np.meanL,…,但结果总是给出'inf',因为sumL也返回'inf' 我很确定这是memmory问题,python限制了存储某些值 我想知道处理这个问题的最佳做法是什么 能否在运行时检测到“inf”结果,并通过if语句,以不同的方式计算平均值,如将主列表分成小列表,然后计算它们之间的平均值?因为您正在使用numpy,请尝试使用: 返回与x形状相同的布尔数组,其中x为True== +/-inf,
能否在运行时检测到“inf”结果,并通过if语句,以不同的方式计算平均值,如将主列表分成小列表,然后计算它们之间的平均值?因为您正在使用numpy,请尝试使用: 返回与x形状相同的布尔数组,其中x为True== +/-inf,否则为False
↳ 既然您正在使用numpy,请尝试使用: 返回与x形状相同的布尔数组,其中x为True== +/-inf,否则为False
↳ 您要添加多少元素?您是否有任何可能是“inf”的值?你可以找到他们与
np.any(np.isinf(...))
您要添加多少元素?您是否有任何可能是“inf”的值?你可以找到他们与
np.any(np.isinf(...))
您可以尝试以下方法来计算数组arr的平均值 这将忽略NAN和INF 例如:
arr = np.array([1, np.inf, 2, 3, np.nan, -np.inf])
np.mean(arr[np.isfinite(arr)]). # will produce 2.0
您可以尝试以下方法来计算数组arr的平均值 这将忽略NAN和INF 例如:
arr = np.array([1, np.inf, 2, 3, np.nan, -np.inf])
np.mean(arr[np.isfinite(arr)]). # will produce 2.0
我的列表中有这么多值20000个值,我没有注意到其中一个是INF,我的列表中有这么多值20000个值,我没有注意到其中一个是INF,我的列表中有这么多值20000个值,我没有注意到其中一个是INF,thxI在我的列表中有这么多值20000个值,我没有注意到其中一个是INF,thx