#numpy #average #numpy-ndarray
#numpy #среднее #numpy-ndarray
Вопрос:
import numpy as np
A = np.random.rand(3,3)
A[1,0] = -666
A[0,1] = -666
A[2,2] = -666
У меня есть матрица, все записи которой положительные, за исключением того, что -666 представляет собой пропущенное значение или выброс. Как я могу вычислить среднее значение по столбцу и среднее значение по строке только с положительными записями?
Ответ №1:
Если вы хотите исключить отрицательное значение из подсчета в среднем знаменателе, вы можете использовать numpy.maximum для отсечения отрицательных значений перед суммированием по требуемому измерению / оси и разделить на количество неотрицательных значений вдоль такого измерения / оси:
np.sum(np.maximum(A, 0), axis=0)/np.sum(A>0, axis=0)
С другой стороны, если вы хотите посчитать также отрицательные значения в знаменателе:
np.mean(A*(A>0), axis=0)
Комментарии:
1. Большое вам спасибо! Именно то, что я искал!