Проверьте, содержит ли массив numpy только нули
мы инициализируем массив numpy с нулями, как показано ниже:
np.zeros((N,N+1))
но как мы проверяем, все ли элементы в данной матрице массива n*n numpy равны нулю.
Метод просто нужно вернуть True, если все значения действительно равны нулю.
4 ответа:
проверить numpy.count_nonzero.
>>> np.count_nonzero(np.eye(4)) 4 >>> np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]]) 5
другие ответы, опубликованные здесь, будут работать, но самая четкая и эффективная функция для использования -
numpy.any()
:>>> all_zeros = not np.any(a)
или
>>> all_zeros = not a.any()
- это предпочтительнее, чем
numpy.all(a==0)
потому что он использует меньше оперативной памяти. (Для этого не требуется временный массив, созданныйa==0
термин.)- кроме того, это быстрее, чем
numpy.count_nonzero(a)
потому что он может вернуться сразу же, когда первый ненулевой элемент был найден.
Если вы тестируете все нули, чтобы избежать предупреждения о другой функции numpy, то обертывание строки в попытке, за исключением того, что блок сохранит необходимость делать тест для нулей перед операцией, которую вы интересуете, т. е.
try: # removes output noise for empty slice mean = np.mean(array) except: mean = 0