В 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=...) = агрегирование значений массива по выбранной оси с вычислением стандартного отклонения без циклов.