Проверьте, что все последние n-е строки массива являются нулями

#arrays #numpy #multidimensional-array #numpy-ndarray

Вопрос:

У меня есть этот массив:

 A = np.array([[[ 1.8, -3.1, -3.5,  2.2],
        [ 1.5, -6.6,  1.1,  1.1],
        [ 8.9,  4.8, -1.2,  3.6],
        [ 1.3, -7.4,  7.4,  1. ],
        [ 6.3,  0. ,  0. ,  3. ],
        [ 6.3,  0. , -6.3,  0. ],
        [ 6.3, -6.3,  6.3,  3.3],
        [ 0. ,  0. ,  0. ,  0. ],
        [ 0. ,  0. ,  0. ,  0. ],
        [ 0. ,  0. ,  0. ,  0. ]]])
 

Поэтому я хочу проверить, все ли последние 3 строки этого массива равны нулю:

 counter = 0
if A[last-3-rows==0]:
    counter  = 1
 

Ответ №1:

Вы можете использовать np.all для проверки последних трех строк с этим индексом:

 >>> np.all(A[:, -3:] == 0)
# or alternatively
# >>> (A[:, -3:] == 0).all()
True
 

Если вы хотите, чтобы это было целое число:

 >>> np.all(A[:, -3:] == 0).astype(int)
1