相关疑难解决方法(0)

在平局的情况下,Python选择哪个最大值?

max()在Python中使用函数来查找列表中的最大值(或元组,字典等)时,最大值是一个平局,Python选择哪一个?是随机的吗?

例如,如果一个具有元组列表并且一个key=基于元组的第一个元素选择最大值(使用a )但是存在不同的第二个元素,则这是相关的.Python如何选择哪一个作为最大值?

我在使用Python v2.6.

python max

70
推荐指数
3
解决办法
2万
查看次数

Python:在存在nan的情况下,sort函数会中断

sorted([2, float('nan'), 1]) 回报 [2, nan, 1]

(至少在Activestate Python 3.1实现上.)

我理解这nan是一个奇怪的对象,所以如果它出现在排序结果中的随机位置,我不会感到惊讶.但它也混淆了容器中非纳米数的排序,这实在是出乎意料.

我问了一个相关的问题有关max,并根据我理解为什么sort是这样工作的.但是,这应该被视为一个错误吗?

文档只是说"返回一个新的排序列表[...]"而没有指定任何细节.

编辑:我现在同意这不违反IEEE标准.但是,我认为这是任何常识观点的错误.即使微软经常承认自己的错误,也已经认识到这个错误,并将其修复为最新版本:http://connect.microsoft.com/VisualStudio/feedback/details/363379/bug- in-list-double-sort-in-list-which-contains-double-nan.

无论如何,我最终关注@ khachik的回答:

sorted(list_, key = lambda x : float('-inf') if math.isnan(x) else x)
Run Code Online (Sandbox Code Playgroud)

我怀疑它与默认情况下的语言相比会导致性能下降,但至少它可行(除非我介绍的任何错误).

python sorting math nan

29
推荐指数
4
解决办法
5855
查看次数

为什么 NaN 值使 min 和 max 对顺序敏感?

> import numpy as np

> min(50, np.NaN)
50   
> min(np.NaN, 50)
nan
Run Code Online (Sandbox Code Playgroud)

(相同的行为发生在max

我知道我可以通过使用numpy.nanmin. 但是当顺序颠倒时,是什么导致了变化呢?是min输入顺序敏感?

python numpy nan

18
推荐指数
2
解决办法
2476
查看次数

标签 统计

python ×3

nan ×2

math ×1

max ×1

numpy ×1

sorting ×1