np.maximum
возвращает поэлементный максимум из двух матриц:
(m1 - m2) / np.maximum(m1, m2)
Если вы хотите, чтобы только положительные значения были меньше единицы, используйте np.absolute
:
np.absolute((m1 - m2) / np.maximum(m1, m2))
В качестве альтернативы вы можете сделать
(np.maximum(m1, m2) - np.minimum(m1, m2)) / np.maximum(m1, m2))
Причина, по которой вы получаете ошибку, состоит в том, что выражение m1 >= m2
является логической маской того же размера, что и оба массива. , Вы не можете преобразовать большой массив логических выражений в один логический, и даже если бы вы могли, выражения в if
и else
работают со всеми массивами. Вам нужно векторизовать условие, которое я показал вам, как это сделать.