numpy.nanstd
- numpy.nanstd(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, *, where=<no value>, mean=<no value>, correction=<no value>)[source]
-
Вычислить стандартное отклонение по указанной оси, игнорируя значения NaN.
Возвращает стандартное отклонение, показатель разброса распределения, элементов массива без NaN. Стандартное отклонение вычисляется для уплощенного массива по умолчанию, в противном случае по указанной оси.
Для срезов, содержащих только NaN, или срезов с нулём степеней свободы возвращается NaN и возникает
RuntimeWarning.Добавлена в версии 1.8.0.
- Параметры:
-
- aarray_like
-
Вычислить стандартное отклонение ненулевых значений.
- axis{int, кортеж из целых чисел, None}, необязательно
-
Ось или оси, по которым вычисляется стандартное отклонение. По умолчанию вычисляется стандартное отклонение уплощенного массива.
- dtypedtype, необязательно
-
Тип, используемый для вычисления стандартного отклонения. Для массивов целочисленного типа по умолчанию используется float64, для массивов плавающей точки — тот же, что и у массива.
- outndarray, необязательно
-
Альтернативный массив вывода, в который поместить результат. Он должен иметь ту же форму, что и ожидаемый результат, но тип (вычисленных значений) будет приведен к нужному, если необходимо.
- ddof{int, float}, необязательно
-
Означает Delta Degrees of Freedom. Знаменатель, используемый в расчётах,
N - ddof, гдеNпредставляет собой количество элементов без NaN. По умолчаниюddofравно нулю. - keepdimsbool, необязательно
-
Если установлено в True, оси, которые были уменьшены, остаются в результате как размерности с размером один. С этим параметром результат будет правильно транслироваться относительно исходного
a.Если это значение отличается от значения по умолчанию, оно передаётся как есть соответствующим функциям подклассов. Если у этих функций нет аргумента
keepdims, будет поднята ошибка RuntimeError. - wherearray_like bool, необязательно
-
Элементы, которые следует включить в стандартное отклонение. Подробнее см.
reduce.Добавлена в версии 1.22.0.
- meanarray_like, необязательно
-
Укажите среднее значение, чтобы избежать его перерасчёта. Среднее значение должно иметь форму, как если бы оно было вычислено с
keepdims=True. Ось для вычисления среднего значения должна быть такой же, как и использованная в вызове этой функции std.Добавлена в версии 1.26.0.
- correction{int, float}, необязательно
-
Совместимое с API массивов имя параметра
ddof. Одновременно можно указать только один из них.Добавлена в версии 2.0.0.
- Возвращает:
-
- standard_deviationndarray, см. параметр dtype выше.
-
Если
outравно None, возвращает новый массив, содержащий стандартное отклонение, в противном случае возвращает ссылку на массив вывода. Если ddof больше или равен количеству ненулевых элементов в срезе или срез содержит только 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]) # may vary
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.nanstd.html