NumPy Linspace возвращает отрицательные числа для положительного интервала - PullRequest
0 голосов
/ 14 сентября 2018
np.linspace(10**3, 10**6, num=5, dtype=np.int16)

yelds

array([  1000, -11394, -23788,  29354,  16960], dtype=int16)

Я не понимаю наличия отрицательных чисел в положительном интервале.

Кто-нибудь может указать мне на то, что мне не хватает? (И, в конце концов, как я могу получить линейно разнесенные числа по длинным последовательностям целых чисел, подобных этим.)

Спасибо!

1 Ответ

0 голосов
/ 07 октября 2018

Как уже упоминалось в комментариях, причина этого - переполнение .

В частности, вы запрашивали числа от 1E3 до 1E6, но int16 поддерживает значения в диапазоне [-32768, 32767]. Когда мы пытаемся представить число типа 40000, используя int16, значение оборачивается, и мы получаем 40000-2**16 == -25536. Большие числа сохраняют «обертку», пока не станут достаточно маленькими, чтобы их можно было представить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...