В NumPy метод std(axis=...) вычисляет стандартное отклонение элементов массива вдоль указанной оси. Это мера разброса данных вокруг среднего.
Принцип аналогичен sum и mean:
axis=0— вычисляем по столбцам (суммируем вертикально)axis=1— вычисляем по строкам (суммируем горизонтально)
Пример:
import numpy as np
M = np.array([[1, 2, 3],
[4, 5, 6]])Стандартное отклонение по axis=0:
np.std(M, axis=0)
# [1.5 1.5 1.5]-
Для каждого столбца:
- 1-й: std([1,4]) = 1.5
- 2-й: std([2,5]) = 1.5
- 3-й: std([3,6]) = 1.5
По axis=1:
np.std(M, axis=1)
# [0.81649658 0.81649658]-
Для каждой строки:
- 1-я строка: std([1,2,3]) ≈ 0.816
- 2-я строка: std([4,5,6]) ≈ 0.816
Особенности:
axis=None(по умолчанию) — std по всем элементам массива, возвращается скаляр:
np.std(M) # ≈ 1.7078- По умолчанию используется несмещённое стандартное отклонение с делением на N (
ddof=0). Для выборочного отклонения можно указатьddof=1. - Для nD массивов
axis=kразмерность уменьшается на 1 по выбранной оси.
Коротко: std(axis=...) = агрегирование значений массива по выбранной оси с вычислением стандартного отклонения без циклов.