Я новичок в 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 миллионов элементов). Есть ли способ решить эту проблему?
Если бы кто-нибудь мог помочь мне в этом, я был бы очень признателен.