如果我有一个由点(x,y)组成的二维numpy数组,并且在每个点上给出一些值z(x,y),我可以找到沿x轴和y轴的标准偏差吗?我知道np.std(data)
只会找到整个数据集的标准偏差,但这不是我想要的。另外,添加axis=0
或axis=1
会计算出您拥有的所有行或列沿每个轴的标准偏差。如果我只想沿y轴一个标准偏差,而沿x轴另一个标准偏差,可以在这样的数据集中找到它们吗?据我了解,当点x的值为y(x)时,沿着x和y的标准偏差通常是有意义的。但是我需要一些sigma_x
和sigma_y
来进行2D高斯拟合。这可能吗?
由于我的实际数据要大得多,这是一个过于简化的示例。
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]
我不确定对应于我想要的输出的样子,因为我什至不确定在形状> nx2的2D数组中是否可行。但是我想知道是否有可能沿x轴计算标准偏差,而沿y轴计算标准偏差。我什至不确定这对于2D数组是否有意义...但是,如果没有,我不确定要输入2 sigma_x
和sigma_y
以进行2D高斯拟合
答案 0 :(得分:0)
标准偏差与y = f(x)
或(x, y)
是坐标无关。它只是衡量一组值的分布程度。如果您有n
个点(x, y)
,它们组成一个nX2
大小的数组,那么std(axis=0)
是您想要的。它创建一个(2, )
形状的数组,其中第一个元素是x轴std,第二个元素是y轴std。这是否有用,取决于您想要什么,并且忽略x
和y
之间的相关性。