numpy.nanstd
-
numpy.nanstd(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<class numpy._globals._NoValue>)[source] -
Вычисление стандартного отклонения по указанной оси, игнорируя значения NaN.
Возвращает стандартное отклонение, меру разброса распределения, элементов массива без NaN. Стандартное отклонение вычисляется для уплощенного массива по умолчанию, иначе по указанной оси.
Для всех срезов NaN или срезов с нулевой степенью свободы возвращается NaN, и генерируется
RuntimeWarning.Новая в версии 1.8.0.
Параметры: a : array_like
Вычисляется стандартное отклонение ненулевых значений.
axis : int, необязательно
Ось, по которой вычисляется стандартное отклонение. По умолчанию вычисляется стандартное отклонение уплощенного массива.
dtype : dtype, необязательно
Тип, используемый при вычислении стандартного отклонения. Для массивов целочисленного типа по умолчанию используется float64, для массивов с плавающей точкой - тот же, что и в массиве.
out : ndarray, необязательно
Альтернативный массив вывода, в котором размещается результат. Он должен иметь такую же форму, как ожидаемый вывод, но тип (вычисленных значений) будет преобразован при необходимости.
ddof : int, необязательно
Означает Delta Degrees of Freedom. Делитель, используемый в расчётах, равен
N - ddof, гдеNпредставляет количество элементов без NaN. По умолчаниюddofравно нулю.keepdims : bool, необязательно
Если установлено True, оси, которые были уменьшены, остаются в результате как измерения с размером один. С этим параметром результат будет правильно транслироваться относительно исходного
a.Если это значение отличается от значения по умолчанию, оно передаётся как есть соответствующим функциям подклассов. Если у этих функций нет параметра
keepdims, будет поднято исключение RuntimeError.Возвращает: standard_deviation : ndarray, см. параметр dtype выше.
Если
outравно None, возвращается новый массив, содержащий стандартное отклонение, в противном случае возвращается ссылка на массив вывода. Если ddof больше или равен количеству элементов без NaN в срезе или срез содержит только NaN, то результат для этого среза будет NaN.Примечания
Стандартное отклонение - это квадратный корень из среднего значения квадратов отклонений от среднего значения:
std = sqrt(mean(abs(x - x.mean())**2)).Среднее значение квадрата отклонения обычно вычисляется как
x.sum() / N, гдеN = len(x). Однако, еслиddofуказано, вместо этого используется делительN - ddof. В стандартной статистической практикеddof=1даёт несмещённую оценку дисперсии бесконечной генеральной совокупности.ddof=0даёт оценку максимального правдоподобия дисперсии для нормально распределённых переменных. Стандартное отклонение, вычисленное в этой функции, является квадратным корнем из оценочной дисперсии, поэтому даже сddof=1, это не будет несмещённой оценкой стандартного отклонения.Обратите внимание, что для комплексных чисел,
stdберёт абсолютное значение перед возведением в квадрат, так что результат всегда вещественный и неотрицательный.Для чисел с плавающей точкой std вычисляется с той же точностью, что и входные данные. В зависимости от входных данных, это может привести к неточным результатам, особенно для float32 (см. пример ниже). Использование аккумулирующего типа с большей точностью с помощью параметра
dtypeможет устранить эту проблему.Примеры
>>> a = np.array([[1, np.nan], [3, 4]]) >>> np.nanstd(a) 1.247219128924647 >>> np.nanstd(a, axis=0) array([ 1., 0.]) >>> np.nanstd(a, axis=1) array([ 0., 0.5])
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.nanstd.html