def _(data: RDD, fr: float, to: float, bins: int) -> Tuple[ndarray, ndarray]: @jit(['uint64[:](uint64[:], int64)', 'uint64[:](uint64[:], float64)'], nopython=True, nogil=True) def inc(init: ndarray, value: float) -> ndarray: binned = digitize([value], linspace(fr, to, bins + 1)) for i in binned: init[i] += 1 return init hist = data.aggregate(zeros(bins + 2, dtype=uint64), inc, com) return hist, linspace(fr, to, bins + 1)
def _(data: RDD, xfr: float, xto: float, xbins: int, yfr: float, yto: float, ybins: int) -> Tuple[ndarray, ndarray, ndarray]: @jit([ 'uint64[:, :](uint64[:, :], int64[:])', 'uint64[:, :](uint64[:, :], float64[:])' ], nopython=True, nogil=True) def inc(init: ndarray, value: Tuple[float, float]) -> ndarray: xbinned = digitize([value[0]], linspace(xfr, xto, xbins + 1)) ybinned = digitize([value[1]], linspace(yfr, yto, ybins + 1)) for x, y in zip(xbinned, ybinned): init[x, y] += 1 return init hist = data.aggregate(zeros((xbins + 2, ybins + 2), dtype=uint64), inc, com) return hist, linspace(xfr, xto, xbins + 1), linspace(yfr, yto, ybins + 1)