Я знаю, что могу использовать реляционный оператор в моем массиве, чтобы получить новый массив логических значений. В приведенном ниже примере создается логический массив с идентичной формой исходного массива, но со значениями True
, если элемент с тем же индексом больше 0, и False
в противном случае.
>>> a = np. array ([ [0 , -2 ,5] , [ -1 , -8 , -12] ,[2 , 4, -9] ])
>>> z = a > 0
>>> print (a)
[[ 0 2 5]
[ 1 -8 -12]
[ 2 4 -9]]
>>> print (z)
[[ False True True ]
[ True False False ]
[ True True False ]]
What I 'Интересно, есть ли способ одновременного сравнения нескольких индексов, чтобы проверить, больше ли два или более значений, например 0. Например, строка, которая будет проверять каждую строку, чтобы увидеть, если первый элемент и второй элемент больше 0. Что-то, чембудет выглядеть как
z = a[:,0] > 0 and a[:,1] > 0
и будет производить результат
array([False, False, True])
, потому что a [0,1] = True, но a [0,0] = False, a [1,0] = True, но a [0,1] = False, и a [2,0] и a [0,2] имеют значение True, возвращая False для первого ряда, False для второго ряда и True для третьегострока
Я хочу сделать все это без цикла