반응형
답변 해 주셔서 감사합니다. 예, 가중 평균을 찾고있었습니다.
rate = [14.424, 14.421, 14.417, 14.413, 14.41]
amount = [3058.0, 8826.0, 56705.0, 30657.0, 12984.0]
하단 목록의 각 항목을 기준으로 상단 목록의 가중 평균을 원합니다.
따라서 첫 번째 하위 목록 항목이 작은 경우 (예 : 총 112,230 개에 비해 3,058 개), 첫 번째 상위 목록 항목은 상위 목록 평균에 영향을 덜 미칠 것입니다.
내가 시도한 것 중 일부는 다음과 같습니다. 그것은 나에게 옳게 보이는 대답을 제공하지만 내가 찾고있는 것을 따르는 지 확실하지 않습니다.
for g in range(len(rate)):
rate[g] = rate[g] * (amount[g] / sum(amount))
rate = sum(rate)
편집하다: 다른 응답을 내 코드와 비교 한 후 가능한 한 짧게 유지하기 위해 우편 번호를 사용하기로 결정했습니다.
해결 방법
for g in range(len(rate)):
rate[g] = rate[g] * amount[g] / sum(amount)
rate = sum(rate)
와 같다:
sum(rate[g] * amount[g] / sum(amount) for g in range(len(rate)))
다음과 동일합니다.
sum(rate[g] * amount[g] for g in range(len(rate))) / sum(amount)
다음과 동일합니다.
sum (x * y for x, y in zip (rate, amount)) / sum (amount)
결과:
14.415602815646439
참조 페이지 https://stackoverflow.com/questions/29330792
반응형
'파이썬' 카테고리의 다른 글
파이썬 문자열의 문자 수 (0) | 2020.11.26 |
---|---|
파이썬 Python을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 어떻게 만들 수 있습니까? (0) | 2020.11.26 |
파이썬 IOError : [Errno 13] 권한이 거부되었습니다. (0) | 2020.11.26 |
파이썬 raw_input에 시간 제한을 설정하는 방법 (0) | 2020.11.26 |
파이썬 wxPython, StaticText () 값 설정 (0) | 2020.11.26 |
댓글