As stated in the docs for numpy.all()
:
numpy.all()
tests whether all array elements along a given axis evaluate to True.
Is there a function, that does the opposite: Check whether all array elements along a given axis (I need the diagonal) evaluates to False.
What I need in particular is to check if the diagonal of a 2-dimensional matrix is zero every where.
First, to extract the diagonal, you can use mymatrix.diagonal()
.
There are quite a few ways to do what you want.
To test whether it is zero everywhere you can do numpy.all(mymatrix.diagonal() == 0)
.
Alternatively, "everything is equal to zero (False)" is the same as "nothing equal to True", so you could also use not numpy.any(mymatrix.diagonal())
.
Since it's a numeric matrix though, you can just add up the absolute value of the elements on the diagonal and if they're all 0, each element must be zero: numpy.sum(numpy.abs(mymatrix.diagonal()))==0
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With