Использование 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 Дикинсон, есть известная проблема с numpy.all
, в которой она возвращает значение входного вместо True
или False
для некоторых входов. В вашем втором примере map(numpy.all, [False, True])
выполняется точно так же, как и раньше, возвращая входное значение.
Я получаю '[True, True, False, True, True]', на Python 2.7.3, NumPy 1.6.1. Какие версии Python и NumPy вы используете? –
Я могу воспроизвести вывод OP в 1.7.1. – DSM
Что вы ожидаете вернуть 'np.all (-2)'? –