numpy.histogramdd#

numpy.histogramdd(sample, bins=10, range=None, density=None, weights=None)[source]#

计算某些数据的多维直方图。

参数:
sample(N, D) 数组,或 (N, D) 类数组

要进行直方图计算的数据。

注意当为类数组时 sample 的不寻常解释

  • 当为数组时,每一行都是 D 维空间中的一个坐标 - 例如 histogramdd(np.array([p1, p2, p3]))

  • 当为类数组时,每个元素是单个坐标的值列表 - 例如 histogramdd((X, Y, Z))

应优先使用第一种形式。

bins序列或整数,可选

箱体规格

  • 描述每个维度上单调递增箱体边缘的数组序列。

  • 每个维度的箱体数量 (nx, ny, … =bins)

  • 所有维度的箱体数量 (nx=ny=…=bins)。

range序列,可选

长度为 D 的序列,每个序列是一个可选的 (下限,上限) 元组,用于在 bins 中未明确给出边缘时给出外部箱体边缘。序列中的 None 条目会导致使用最小值和最大值作为相应维度的值。默认值 None 等效于传递 D 个 None 值的元组。

density布尔值,可选

如果为 False(默认值),则返回每个箱体中的样本数量。如果为 True,则返回箱体处的概率密度函数,bin_count / sample_count / bin_volume

weights(N,) 类数组,可选

一个值 w_i 数组,对每个样本 (x_i, y_i, z_i, …) 进行加权。如果 density 为 True,则权重被归一化为 1。如果 density 为 False,则返回的直方图的值等于落入每个箱体中的样本的权重之和。

返回值:
Hndarray

样本 x 的多维直方图。有关不同的可能语义,请参见 density 和 weights。

edgesndarray 元组

一个包含 D 个数组的元组,描述每个维度的箱体边缘。

另请参阅

histogram

一维直方图

histogram2d

二维直方图

示例

>>> import numpy as np
>>> rng = np.random.default_rng()
>>> r = rng.normal(size=(100,3))
>>> H, edges = np.histogramdd(r, bins = (5, 8, 4))
>>> H.shape, edges[0].size, edges[1].size, edges[2].size
((5, 8, 4), 6, 9, 5)