scipy.stats.binned_statistic_2d

scipy.stats.binned_statistic_2d(x, y, values, statistic='mean', bins=10, range=None, expand_binnumbers=False)[源代码]

计算一组或多组数据的二维入库统计。

这是Histogram2d函数的推广。直方图将空间划分为存储箱,并返回每个存储箱中点数的计数。此函数允许计算每个面元内的值(或值集)的总和、平均值、中位数或其他统计信息。

参数
x(n,)类似数组

要沿第一维入库的值序列。

y(n,)类似数组

要沿第二维入库的值序列。

values(N,)ARRAY_LIKE或(N,)ARRAY_LIKE列表

将计算统计数据的数据。此形状必须与 x ,或序列列表-每个序列的形状与 x 。如果 values 都是这样的列表,则将分别对每个列表分别计算统计信息。

statistic字符串或可调用,可选

要计算的统计数据(默认值为“Mean”)。以下统计数据可用:

  • “Mean”:计算每个面元内各点的平均值。空垃圾箱将由NaN代表。

  • ‘std’:计算每个仓位内的标准偏差。这是在ddof=0时隐式计算的。

  • “中位数”:计算每个垃圾箱内各点的值的中位数。空垃圾箱将由NaN代表。

  • ‘count’:计算每个bin内的点数。这与未加权的直方图相同。 values 未引用数组。

  • ‘sum’:计算每个bin内的点的值之和。这与加权直方图相同。

  • ‘min’:计算每个bin内的点的最小值。空垃圾箱将由NaN代表。

  • ‘max’:计算每个bin内的点的最大值。空垃圾箱将由NaN代表。

  • 函数:一个用户定义的函数,它接受一维的值数组,并输出单个数值统计数据。将对每个bin中的值调用此函数。空箱将由函数([])表示,如果返回错误,则用NaN表示。

bins整型或 [整数,整数] 或类似数组的或 [阵列,阵列] ,可选

仓位规格:

  • 两个维度的箱数(NX=NY=箱数),

  • 每个维度的仓位数(NX,NY=仓位),

  • 两个维度的仓边(x_edge=y_edge=bin),

  • 每个维度中的仓边(x_edge,y_edge=仓位)。

如果指定了存储箱边缘,则存储箱的数量将为(nx=len(X_Edge)-1,ny=len(Y_Edge)-1)。

range(2,2)类似数组,可选

沿每个维度的存储箱的最左边和最右边(如果未在 bins 参数): [[xmin,xmax] , [ymin,ymax] ]。超出此范围的所有值都将被视为异常值,不会计入直方图中。

expand_binnumbers布尔值,可选

‘False’(默认值):返回的 binnumber 是线性化仓位索引的形状(N,i)阵列。‘true’:返回的 binnumber 被“解开”成形状(2,N)ndarray,其中每行给出相应维度中的仓号。请参阅 binnumber 返回值,并且 Examples 部分。

0.17.0 新版功能.

退货
statistic(NX,NY)ndarray

每个二维箱中选定统计信息的值。

x_edge(NX+1)ndarray

箱体沿第一维边缘。

y_edge(NY+1)ndarray

箱体沿第二维边缘。

binnumber整数的(n,)数组或整数的(2,N)ndarray

这将分配给的每个元素 sample 一个整数,表示此观察值所在的仓位。表示形式取决于 expand_binnumbers 论点。看见 Notes 有关详细信息,请参阅。

注意事项

两边:除了最后一个(最右边)垃圾箱外,所有的垃圾箱都是半开的。换句话说,如果 bins[1, 2, 3, 4] ,那么第一个垃圾箱是 [1, 2) (包括1个,但不包括2个)和第二个 [2, 3) 。然而,最后一个垃圾箱是 [3, 4] ,其中 包括 4.

binnumber :此返回参数赋值给的每个元素 sample 一个整数,表示它所属的存储箱。表示形式取决于 expand_binnumbers 论点。If‘false’(默认值):返回的 binnumber 是映射每个元素的线性化索引的形状(N,)数组 sample 到其相应的仓位(使用行长排序)。请注意,返回的线性化仓位索引用于在外部二进制边缘上具有额外仓位的数组,以捕获定义的仓位界限之外的值。如果为“True”:返回的 binnumber 是形状(2,N)ndarray,其中每行分别指示每个维度的仓位放置。在每个维度中,都有一个二进制数 i 表示相应的值在(D_EDGE)之间 [i-1] ,D_EDGE [i] ),其中‘D’是‘x’或‘y’。

0.11.0 新版功能.

示例

>>> from scipy import stats

使用显式仓边计算计数:

>>> x = [0.1, 0.1, 0.1, 0.6]
>>> y = [2.1, 2.6, 2.1, 2.1]
>>> binx = [0.0, 0.5, 1.0]
>>> biny = [2.0, 2.5, 3.0]
>>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny])
>>> ret.statistic
array([[2., 1.],
       [1., 0.]])

放置每个样本的箱子由 binnumber 返回的参数。默认情况下,以下是线性化的仓位索引:

>>> ret.binnumber
array([5, 6, 5, 9])

属性,还可以将仓位索引扩展为每个维度的单独条目 expand_binnumbers 参数:

>>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny],
...                                 expand_binnumbers=True)
>>> ret.binnumber
array([[1, 1, 1, 2],
       [1, 2, 1, 1]])

这表明前三个元素属于xbin 1,第四个元素属于xbin 2;对于y依此类推。