flopscope.numpy.histogramdd
fnp.histogramdd(sample, bins=10, range=None, density=None, weights=None)[flopscope source][numpy source]
Compute the multidimensional histogram of some data.
Adapted from NumPy docs np.histogramdd
ND binning; cost = n*sum(ceil(log2(b_i))).
Parameters
- sample:(N, D) array, or (N, D) array_like
The data to be histogrammed.
Note the unusual interpretation of sample when an array_like:
When an array, each row is a coordinate in a D-dimensional space - such as
histogramdd(flops.array([p1, p2, p3])).When an array_like, each element is the list of values for single coordinate - such as
histogramdd((X, Y, Z)).
The first form should be preferred.
- bins:sequence or int, optional
The bin specification:
A sequence of arrays describing the monotonically increasing bin edges along each dimension.
The number of bins for each dimension (nx, ny, ... =bins)
The number of bins for all dimensions (nx=ny=...=bins).
- range:sequence, optional
A sequence of length D, each an optional (lower, upper) tuple giving the outer bin edges to be used if the edges are not given explicitly in
bins. An entry of None in the sequence results in the minimum and maximum values being used for the corresponding dimension. The default, None, is equivalent to passing a tuple of D None values.- density:bool, optional
If False, the default, returns the number of samples in each bin. If True, returns the probability density function at the bin,
bin_count / sample_count / bin_volume.- weights:(N,) array_like, optional
An array of values
w_iweighing each sample(x_i, y_i, z_i, ...). Weights are normalized to 1 if density is True. If density is False, the values of the returned histogram are equal to the sum of the weights belonging to the samples falling into each bin.
Returns
- H:ndarray
The multidimensional histogram of sample x. See density and weights for the different possible semantics.
- edges:tuple of ndarrays
A tuple of D arrays describing the bin edges for each dimension.
See also
- we.flops.histogram 1-D histogram
- we.flops.histogram2d 2-D histogram
Examples
>>> import flopscope.numpy as fnp
>>> rng = flops.random.default_rng()
>>> r = rng.normal(size=(100,3))
>>> H, edges = flops.histogramdd(r, bins = (5, 8, 4))
>>> H.shape, edges[0].size, edges[1].size, edges[2].size
((5, 8, 4), 6, 9, 5)