numpy.digitize
дает номер ячейки для данных, помещаемых в ячейки. Здесь у вас есть 256 корзин, и последняя корзина закрыта. Следовательно,
import numpy as np
a = np.array([1,2,3])
N = 256
bins = np.linspace(a.min(), a.max(), N+1)
dig = np.digitize(a, bins)-1
dig[dig == N] = N-1 # map the last half-open interval back
print(dig)
Теперь убедитесь, что это действительно индексы цветовой карты:
import matplotlib.pyplot as plt
cmap = plt.cm.jet
norm = plt.Normalize(a.min(), a.max())
colors1 = cmap(norm(a))
colors2 = cmap(dig)
assert(np.all(colors1 == colors2))