Почему numpy.sum не дает мне правильный результат? - PullRequest
1 голос
/ 04 июля 2019

Сумма стандартного списка Python, скажем, x = list (range (100000)) не совпадает с суммой той же последовательности x_array = np.array (x).В первом случае я получаю сумму (х) = 4999950000, который является правильным результатом.Используя сумму numy, я получаю np.sum (x_array)) = 704982704.Это беспокоит меня, потому что я начинающий с этим языком.У кого-нибудь есть объяснение этой разницы?Спасибо.Код

import numpy as np
x=list(range(100000))
print("sum x using standard python function = ",sum(x))
x_array=np.array(x)
print("sum x using numpy =",np.sum(x_array))

1 Ответ

2 голосов
/ 04 июля 2019

Ваш NumPy по умолчанию использует стандартные 32-битные целые числа;Python будет переключаться на бесконечно длинные целые числа по мере необходимости.

Вы укушены переполнением / переносом.

4999950000 % (2**32)   ==>   704982704
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...