Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 행렬의 각 행별 중복 비율(Redundancy Rate) 구하는 프로그램

행렬의 각 행에 대해 중복 비율(redundancy rate)을 구해야 할 때는 간단한 반복문과 append 메서드만으로도 손쉽게 해결할 수 있습니다.

동작 원리

중복 비율은 아래 공식을 기반으로 계산됩니다.

중복 비율 = 1 − (고유한 요소의 개수 ÷ 전체 요소의 개수)

각 행에 set() 함수를 적용해 중복을 제거한 뒤 남은 고유 값의 개수를 전체 요소 개수로 나누고, 이를 1에서 빼면 해당 행에서 중복된 요소가 차지하는 비율을 구할 수 있습니다.

예제 코드

아래는 실제 동작 과정을 보여주는 예제입니다.

my_list = [[91, 52, 12, 29, 33], [54, 54, 54, 54, 54], [11, 22, 33, 59, 95]]

print("The list is :")
print(my_list)

my_result = []
for sub in my_list:
    my_result.append(1 - len(set(sub)) / len(sub))

print("The result is :")
print(my_result)

출력 결과

The list is :
[[91, 52, 12, 29, 33], [54, 54, 54, 54, 54], [11, 22, 33, 59, 95]]
The result is :
[0, 1, 0]

코드 설명

  • 리스트 안에 여러 개의 리스트가 포함된 중첩 리스트(행렬 형태)를 정의하고, 콘솔에 출력합니다.

  • 계산 결과를 저장할 빈 리스트를 생성합니다.

  • 원본 리스트의 각 행을 순회하면서 해당 행의 중복 비율을 계산하고, 그 값을 빈 리스트에 추가(append)합니다.

  • 모든 행에 대한 계산이 완료되면 최종 결과를 콘솔에 출력합니다.

결과 분석

  • 첫 번째 행 [91, 52, 12, 29, 33]은 모든 요소가 서로 다르므로 중복 비율은 0입니다.

  • 두 번째 행 [54, 54, 54, 54, 54]는 모든 요소가 동일하므로 중복 비율이 1(100%)로 계산됩니다.

  • 세 번째 행 [11, 22, 33, 59, 95] 역시 중복이 없기 때문에 중복 비율은 0입니다.