2012-01-18 81 views
2

docs for numpy.all()指出:是否有numpy.all()的倒序版本?

numpy.all()測試是否沿給定軸線所有數組元素評估爲True

是否有一個功能,那則正好相反:檢查沿給定軸的所有數組元素是否(我需要的對角線)值爲False

我特別需要的是檢查一個2維矩陣的對角線是否爲零,其中每個都是零。

回答

11

首先,要提取對角線,可以使用mymatrix.diagonal()

有很多方法可以做你想做的事。

要測試它是否爲零,無論在哪裏都可以做numpy.all(mymatrix.diagonal() == 0)

或者,「一切等於零(假)」與「無等於真」相同,因此您也可以使用not numpy.any(mymatrix.diagonal())

雖然它是一個數字矩陣,但您可以將對角元素的絕對值相加,如果它們都爲0,則每個元素必須爲零:numpy.sum(numpy.abs(mymatrix.diagonal()))==0

2

布爾條件可以是任何東西。所以無論是

(np.diag(x) == 0).all() 

(np.diag(x) != 0).any() 

作品,但第二個版本早於任何檢查站,如果有一個錯誤的情況。這兩種情況都需要構建完整的布爾數組。

相關問題