[英]Python numpy array has weird truth conditions
如果我設置:
board = np.array([[2., 0., 2.],[0., 2., 0.],[2., 0., 1.]])
然后np.diagonal(board)
返回array([2., 2., 1.])
,如您所料。 並且np.diagonal(board) == 1
再次返回array([False, False, True])
,正如預期的那樣。 但是np.diagonal(board).all() == 1
返回True
,應該是 false 並且np.diagonal(board).all() == 2
返回False
,這是正確的。
這里發生了什么?
當您在對角數組上調用all()
時,它會檢查所有元素是否為True
。 您提供了一個float
組而不是bool
。 所有非零都被視為True
,因此all()
返回True
。 然后在純 Python 中,True == 1 (不僅僅是你的 numpy 調用中的非零),所以 == 2 是False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.