簡體   English   中英

Python numpy 數組有奇怪的真值條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM