Tôi có một iterator số, ví dụ như một đối tượng file:tính toán trung bình và phương sai với một lặp
f = open("datafile.dat")
bây giờ tôi muốn để tính toán:
mean = get_mean(f)
sigma = get_sigma(f, mean)
việc thực hiện tốt nhất là gì? Giả sử rằng tập tin lớn và tôi muốn tránh đọc nó hai lần.
Bạn có muốn tránh đọc tệp hai lần hoặc tránh lặp lại hai lần không? – truppo
Tôi không nghĩ rằng bạn đang hiển thị cho chúng tôi mã đầy đủ. Bạn đang chuyển một tệp tới 'get_mean()' trong đó 'fsum()' chỉ chấp nhận danh sách các số. –
Tại sao bạn cần đặt giới hạn về sửa đổi chức năng? Nếu bạn sắp xếp lại công thức cho phương sai, tôi nghĩ bạn có thể nhận được một cái gì đó như sqrt (1/(n-1) * (tổng (li ** 2 cho li trong l) + n * mm * tổng (li cho li trong l) + n * mm)) trong đó n là len (l). Đó là, nếu toán của tôi là chính xác. Sau đó, bạn có thể lặp lại một lần, tính toán các thuật ngữ tổng trong phép tái cấu trúc ở trên và giá trị trung bình tại cùng một thời điểm. – chradcliffe