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)