Почему повышение массива numpy в степени больше 9 возвращает неправильные результаты? - PullRequest
0 голосов
/ 26 мая 2018

Я не понимаю, почему повышение сил больше 9 не работает для меня.Кажется простым: я просто пытаюсь поднять 10, например, в степени 10, но по какой-то причине ничего не получается.В чем может быть проблема?

import numpy as np
number = 10
arr = [number]

print(np.power(np.array(arr),number)) # [1410065408]
print([n**number for n in arr]) # [10000000000]

1 Ответ

0 голосов
/ 26 мая 2018

Почему повышение массива 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...