【发布时间】:2022-02-17 03:35:31
【问题描述】:
如果我有一个由点 (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 来进行我想要做的二维高斯拟合。这可能吗?
这是一个过于简单的例子,因为我的实际数据要大得多。
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 的二维数组中是否可能。但我想知道是否可以计算沿 x 轴的标准偏差和沿 y 轴的标准偏差。我什至不确定这对二维数组是否有意义......但如果没有,我不确定输入什么作为我的sigma_x 和sigma_y 以进行二维高斯拟合。
【问题讨论】:
-
这只是一个坚实的文本块。请考虑将其分解为段落,并明确说明您要实现的目标
-
@roganjosh 查看编辑
-
我完全不清楚您所说的“沿 x 轴的标准偏差”是什么意思。这包括哪些数组值?选择值并应用
std操作很简单,不是吗? -
“沿 x 轴的标准差”唯一明显的含义是“每列的标准差”,这正是您所说的不想要的.那么,你想要什么做?也许您有一些预期的规则来将两行之间的距离作为一个浮点数,并且您想要使用该距离规则的标准偏差?如果是这样,您需要告诉我们该规则是什么,我们可以向您展示如何实施它。
-
我认为我需要做的是在我的峰值所在的行或列处获得沿 x 和 y 的标准偏差。我认为这就是我正在阅读的示例缺乏解释的地方......在这种情况下,如果我的峰值有(x0,y0)坐标,我可能会做
np.std(data, axis=0)[x0]和np.std(data, axis=1)[y0]。但我不肯定这是否正确。
标签: python arrays python-3.x numpy standard-deviation