Если у меня есть двумерный массив, состоящий из точек (x, y), которые дают некоторое значение z(x, y) в каждой точке, могу ли я найти стандартное отклонение по оси x и по оси y? Я знаю, что np.std(data) просто найдет стандартное отклонение всего набора данных, но я этого не хочу. Кроме того, добавление axis=0 или axis=1 вычисляет стандартные отклонения вдоль каждой оси для любого количества строк или столбцов, которые у вас есть. Если мне просто нужно одно стандартное отклонение по оси Y, а другое — по оси X, могу ли я найти их в таком наборе данных? Насколько я понимаю, стандартные отклонения по x и y обычно имеют смысл, когда у вас есть точки x со значениями y(x). Но мне нужны sigma_x и sigma_y для двухмерной аппроксимации по Гауссу, которую я пытаюсь выполнить. Возможно ли это?
Вот упрощенный пример, поскольку мои фактические данные намного больше.
Код: Выделить всё
import numpy as np
data = np.array([[1, 5, 0, 3], [3, 5, 1, 1], [41, 33, 9, 20], [11, 20, 4, 13]])
print(np.std(data)) #not what I want
>>> 11.78386
print(np.std(data, axis=0)) #this gives me as many results as there are rows/columns so it's not what I want
>>> [16.03 11.69 3.5 7.69]
Я не уверен, как будет выглядеть результат, соответствующий тому, что я хочу, поскольку я даже не уверен, возможно ли это в 2D-массиве с формой > nx2. Но я хочу знать, можно ли вычислить стандартное отклонение по оси X и одно по оси Y. Я даже не уверен, имеет ли это смысл для 2D-массива... Но если это не так, я не уверен, что вводить в качестве sigma_x и sigma_y для 2D-гауссова аппроксимации.
Подробнее здесь:
https://stackoverflow.com/questions/519 ... umpy-array