Voici une exécution en ipython3
In [81]: r2
Out[81]:
array([-1.2997805, -1.4251276, -1.3047135, ..., -2.0358603, -1.9741256,
-1.6412157], dtype=float32)
In [82]: r2.astype(np.uint8)
Out[82]: array([255, 255, 255, ..., 254, 255, 255], dtype=uint8)
Comment -1,2997805 est-il converti en 255 ?
ADD : d'après les commentaires ci-dessous (merci), j'ai testé comme ceci. il semble que le float soit converti en int, et que le modulo 255 (pour le lire en unsigned int8) soit fait.
is first convereted to int. and the it is cut using modulo(%).
In [98]: b
Out[98]: array([-1., 0., 1.])
In [99]: b.astype(np.uint8)
Out[99]: array([255, 0, 1], dtype=uint8)