Warum liefern Numpy.all () und any () falsche Ergebnisse, wenn Sie Generatorausdrücke verwenden?

Bei der Arbeit mit dem Code eines anderen stieß ich auf dieses Problem. Was ist die Erklärung für das Verhalten von Numpy?

In [1]: import numpy as np

In [2]: foo = [False, False]

In [3]: print np.any(x == True for x in foo)
True  # <- bad numpy!

In [4]: print np.all(x == True for x in foo)
True  # <- bad numpy!

In [5]: print np.all(foo)
False  # <- correct result

p.s. Ich habe den Code für das Listenverständnis von hier erhalten:Überprüfen Sie, ob die Liste nur Artikel x enthält

Antworten auf die Frage(1)

Ihre Antwort auf die Frage