Ошибка с переходом в другой тип при малых значениях numpy

Существует массив np.array([0.e+00, 0.e+00, 0.e+00, 1.e-50, 0.e+00]). Тип этого массива - float. При умножении всего массива b *= 30 на число, которые больше 19, тип массива меняется на object. При b = b * 30 тип все-равно меняется, хоть и без ошибки.

b = np.zeros((5, 5))

b[1, 2] = 10 ** -50

b *= 10 ** 20


Ответы (1 шт):

Автор решения: kira

Как вариант, можно:

b *= 10 ** (20 // 2)
b *= 10 ** (20 // 2)

И только в таком порядке. При b *= (10 ** 20) // 2 выскакивает та же самая ошибка.

→ Ссылка