Tôi mới để python và numpy vì vậy xin vui lòng tha cho tôi nếu vấn đề này là rất thô sơ! Tôi có một mảng các giá trị âm (nó được sắp xếp):Dài (> 20million yếu tố) mảng tổng kết trong python numpy
>>>neg
[ -1.53507843e+02 -1.53200012e+02 -1.43161987e+02 ..., -6.37326136e-1 -3.97518490e-10 -3.73480691e-10]
>>>neg.shape
(12922508,)
tôi cần phải thêm mảng này để trùng lặp của nó (nhưng với các giá trị tích cực) để tìm độ lệch chuẩn của phân phối trung bình để zero. Vì vậy, tôi làm như sau:
>>>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,)
Cho đến nay mọi thứ đều rất tốt, nhưng điều lạ là tổng của mảng mới này không phải là zero:
>>>numpy.sum(total)
11610.6
Độ lệch chuẩn cũng không phải là ít tất cả gần những gì tôi đã mong đợi nhưng tôi đoán gốc của vấn đề đó là giống như thế này: Tại sao không tổng kết quả bằng không?
Khi tôi áp dụng phương pháp này cho một mảng nhỏ; ví dụ [-5, -3, -2] tổng trở thành 0. Vì vậy, tôi đoán vấn đề nằm trong chiều dài của mảng (hơn 20 triệu phần tử). Có cách nào để giải quyết vấn đề này không?
Nếu có ai có thể giúp tôi về điều này, tôi sẽ biết ơn nhất.
'math.fsum (total)' return '0'? – jfs
Có chứ !!! WOW !!! Bạn có nghĩa là tôi không nên sử dụng numpy ở tất cả, tôi đã ở trong quan niệm sai lầm rằng numpy là công cụ tốt nhất để làm việc trên mảng! Nhưng tìm kiếm trong http://docs.python.org/py3k/library/math.html#module-math Tôi không thấy bất kỳ công cụ nào để tính toán Độ lệch chuẩn. Bạn sẽ đề xuất điều gì? – makhlaghi
Không. 'Fsum()' chỉ để kiểm tra sự chắc chắn rằng mã của bạn không có một số lỗi khác ngoài việc mất độ chính xác trong quá trình tổng kết. ['numpy.std()'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html) có thể được sử dụng cho Độ lệch Chuẩn. Hãy thử 'np.std (total, dtype = np.float64)'. – jfs