Как изменить тип данных результата np.dot с float64 на uint8?

#numpy #types

#numpy #типы

Вопрос:

кто-нибудь знает, как изменить тип результата «grayscale_image» на np.uint8? После применения «np.dot» он изменяется на тип float 64:

 LenaRGB = np.array(Image.open('Lena.png'), dtype=np.uint8)
rgb_weights = [0.2989, 0.5870, 0.1140]
grayscale_image = np.dot(LenaRGB[...,:3], rgb_weights)
 

Комментарии:

1.Использовать стандартный numpy astype метод? np.dot использует быстро скомпилированный код, где это возможно, который будет использовать стандартные c типы float или int.

2. Да, это сработало, спасибо

Ответ №1:

Я думаю, это должно сработать для вас:

 grayscale_image.astype(np.uint8)
 

Вот документация:
https://numpy.org/doc/stable/reference/generated/numpy.ndarray.astype.html