带有整数参数的numpy.all返回一个整数

时间:2013-05-07 18:58:50

标签: python numpy

为什么会这样?

>>> map(numpy.all, range(-2, 3))
[-2, -1, 0, 1, 2]

是故意还是整数只是通过破解?

是否与:

有关
>>> map(numpy.all, [False, True])
[False, True]

我正在运行Numpy 1.8.0.dev-74b08b3Python 2.7.3

1 个答案:

答案 0 :(得分:1)

使用map(numpy.all, range(-2,3))实际上是在创建一个列表:

[numpy.all(-2), numpy.all(-1), numpy.all(0), numpy.all(1), numpy.all(2)]

[-2, -1, 0, 1, 2]

如果您执行map(lambda x: numpy.all([x]), range(-2,3)),则会执行以下操作:

[numpy.all([-2]), numpy.all([-1]), numpy.all([0]), numpy.all([1]), numpy.all([2])]

[True, True, False, True, True]

由@Mark Dickinson发布,numpy.all存在一个已知问题,即某些输入会返回输入值,而不是TrueFalse。在第二个示例中,map(numpy.all, [False, True])与之前完全相同,返回输入值。