Почему повышение массива numpy
в степени больше 9 возвращает неверные результаты?
Из-за неявного (предполагается, чтовывод типа) dtype
, который использовался при создании экземпляра np.array
плюс побочные эффекты переполнения:
>>> np.power( np.array( arr, dtype = np.int64 ), 10 )
array([10000000000], dtype=int64)
>>> np.power( np.array( arr, dtype = np.int32 ), 10 )
array([-2147483648])
>>> np.power( np.array( arr, dtype = np.int ), 10 )
array([-2147483648])
>>> np.power( np.array( arr ), 10 )
array([-2147483648])
>>> pass; np.array( arr ).dtype
dtype('int32')