def bayesian_blocks_binning(data, range=None, **kwargs) -> NumpyBinning: """Binning schema based on Bayesian blocks (from astropy). Computationally expensive for large data sets. Parameters ---------- range: Optional[tuple] See also -------- astropy.stats.histogram.bayesian_blocks astropy.stats.histogram.histogram """ from astropy.stats.histogram import bayesian_blocks if range is not None: data = data[(data >= range[0]) & (data <= range[1])] edges = bayesian_blocks(data) return NumpyBinning(edges, **kwargs)