mx = np.ma.masked_equal(arr, 0, copy=True)
bins = algos.quantile(arr[~mx.mask], np.linspace(0, 1, 11))
bins = np.insert(bins, 0, 0)
bins[1] = bins[1] - bins[1] / 2
result = pd.tools.tile._bins_to_cuts(arr, bins, include_lowest=True)
Как выполнить qcut с неуникальными краями бина?