[Python] 2차원 리스트 합/평균 계산
April 19, 2024
2차원 리스트의 평균을 계산하는 방법을 소개합니다.
- 행에 대한 합계 및 평균
- 열에 대한 합계 및 평균
- 전체 요소들의 합계 및 평균
1. 2차원 리스트의 합계/평균 계산
아래와 같이 2차원 리스트의 행/열의 합계 및 평균을 계산할 수 있습니다.
zip(*data)
: 2차원 리스트의 같은 열끼리 묶어서 튜플로 리턴[sum(row) for row in data]
: 같은 행의 요소들끼리 합계 계산하여 리스트 리턴[sum(row) / len(row) for row in data]
: 같은 행의 합계를 행의 요소 개수로 나눠서 평균 계산sum(row_sums) / len(data)
: 모든 행의 합계를 리스트의 전체 요소 개수로 나눠서 리스트 평균 계산
# 2차원 리스트
data = [
[85, 90, 78],
[92, 88, 75],
[78, 85, 80]
]
# 각 열의 합계 계산
column_sums = [sum(col) for col in zip(*data)]
# 각 열의 평균 계산
column_averages = [sum(col) / len(col) for col in zip(*data)]
# 각 행의 합계
row_sums = [sum(row) for row in data]
# 각 행의 평균
row_averages = [sum(row) / len(row) for row in data]
# 전체 리스트의 평균
total_average = sum(row_sums) / len(data)
print("각 행의 합계:", row_sums)
print("각 행의 평균:", row_averages)
print("각 열의 합계:", column_sums)
print("각 열의 평균:", column_averages)
print("전체 리스트의 평균:", total_average)
Output:
각 행의 합계: [253, 255, 243]
각 행의 평균: [84.33333333333333, 85.0, 81.0]
각 열의 합계: [255, 263, 233]
각 열의 평균: [85.0, 87.66666666666667, 77.66666666666667]
전체 리스트의 평균: 250.33333333333334
2. zip(*data)에 대한 간단한 설명
zip(*data)
처럼 인자로 *리스트
를 전달하면 리스트의 각 행에서 첫번째 열의 요소를 튜플로 묶습니다.
data = [
[85, 90, 78],
[92, 88, 75],
[78, 85, 80]
]
for col in zip(*data):
print(col)
위 코드의 실행 결과는 다음과 같으며, 각 열의 요소들끼리 묶여서 출력되었습니다.
(85, 92, 78)
(90, 88, 85)
(78, 75, 80)