Я новичок в python и numpy, поэтому, пожалуйста, извините меня, если эта проблема настолько примитивна! У меня есть массив отрицательных значений (он отсортирован):
>>>neg
[ -1.53507843e+02 -1.53200012e+02 -1.43161987e+02 ..., -6.37326136e-1 -3.97518490e-10 -3.73480691e-10]
>>>neg.shape
(12922508,)
Мне нужно добавить этот массив к его дубликату (но с положительными значениями), чтобы найти стандартное отклонение распределения, усредненное до нуля. Итак, я делаю следующее:
>>>pos=-1*neg
>>>pos=pos[::-1] #Just to make it look symmetric for the display bellow!
>>>total=np.hstack((neg,pos))
>>>total
[-153.50784302 -153.20001221 -143.1619873 ..., 143.1619873 153.20001221 153.50784302]
>>>total.shape
(25845016,)
Пока все очень хорошо, но странно то, что сумма этого нового массива не равна нулю:
>>>numpy.sum(total)
11610.6
Стандартное отклонение также совсем не близко к тому, что я ожидал, но я угадайте, что корень этой проблемы такой же: почему сумма не равна нулю?
Когда я применяю этот метод к небольшому массиву; например [-5, -3, -2] сумма становится равной нулю. Итак, я предполагаю, что проблема заключается в длине массива (более 20 миллионов элементов). Есть ли способ справиться с этой проблемой?
Если бы кто-нибудь мог мне в этом помочь, я был бы очень благодарен.