bounds = np.repeat([(0, 1)], D, axis=0)
result = np.mgrid[[slice(row[0], row[1], n * 1j) for row, n in zip(bounds,
    n_bins)]]
ans = np.mgrid[0:1:100j, 0:1:100j, 0:1:100j]
assert np.allclose(result, ans)
Как создать многомерный массив с помощью numpy.mgrid