如docs for numpy.all()
指出:是否有numpy.all()的倒序版本?
numpy.all()
測試是否沿給定軸線所有數組元素評估爲True。
是否有一個功能,那則正好相反:檢查沿給定軸的所有數組元素是否(我需要的對角線)值爲False。
我特別需要的是檢查一個2維矩陣的對角線是否爲零,其中每個都是零。
如docs for numpy.all()
指出:是否有numpy.all()的倒序版本?
numpy.all()
測試是否沿給定軸線所有數組元素評估爲True。
是否有一個功能,那則正好相反:檢查沿給定軸的所有數組元素是否(我需要的對角線)值爲False。
我特別需要的是檢查一個2維矩陣的對角線是否爲零,其中每個都是零。
首先,要提取對角線,可以使用mymatrix.diagonal()
。
有很多方法可以做你想做的事。
要測試它是否爲零,無論在哪裏都可以做numpy.all(mymatrix.diagonal() == 0)
。
或者,「一切等於零(假)」與「無等於真」相同,因此您也可以使用not numpy.any(mymatrix.diagonal())
。
雖然它是一個數字矩陣,但您可以將對角元素的絕對值相加,如果它們都爲0,則每個元素必須爲零:numpy.sum(numpy.abs(mymatrix.diagonal()))==0
。
布爾條件可以是任何東西。所以無論是
(np.diag(x) == 0).all()
或
(np.diag(x) != 0).any()
作品,但第二個版本早於任何檢查站,如果有一個錯誤的情況。這兩種情況都需要構建完整的布爾數組。