2013-05-07 58 views
7

爲什麼會發生這種情況?帶整數參數的numpy.all返回一個整數

>>> 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

+4

在Python 2.7.3,NumPy 1.6.1上,我得到了[[True,True,False,True,True]。你使用的是什麼版本的Python和NumPy? – 2013-05-07 19:02:24

+5

我可以在1.7.1中重現OP的輸出。 – DSM 2013-05-07 19:07:33

+1

你期望'np.all(-2)'返回什麼? – 2013-05-07 19:07:48

回答

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] 

張貼由@馬克狄金森,沒有與numpy.all一個已知的問題在它返回輸入值,而不是TrueFalse的一些輸入。在你的第二個例子中,map(numpy.all, [False, True])與之前完全一樣,返回輸入值。

相關問題