본문 바로가기
Big Data/DataAnalysis & Manipulate

numpy histogram()

by Wikinist 2023. 8. 8.

np.histogram 함수는 NumPy 라이브러리에서 제공하는 히스토그램을 생성하는 함수입니다. 히스토그램은 데이터의 분포를 시각화하는데 사용되며, 데이터를 일정한 간격으로 나누어 각 구간의 빈도를 보여줍니다. 이를 통해 데이터의 패턴과 분포를 쉽게 파악할 수 있습니다.

np.histogram 함수는 주어진 데이터를 특정 구간(빈)으로 나누어 각 구간의 빈도를 계산합니다. 이를 이용하여 도수 분포표를 생성할 수 있습니다. 아래는 np.histogram 함수를 사용하여 도수 분포표를 만드는 과정과 도수 분포표에 포함되는 항목들의 설명입니다.

데이터 준비: 분석하고자 하는 데이터를 준비합니다.

계급(빈) 설정: 히스토그램을 만들기 위해 데이터를 일정한 구간(빈)으로 나눕니다. 이 구간들을 계급이라고 합니다. 계급의 수와 범위는 데이터에 따라 조절할 수 있습니다.

np.histogram 사용: NumPy의 np.histogram 함수를 사용하여 데이터와 계급을 입력으로 받아 각 계급의 빈도를 계산합니다. 이 함수는 계급별 빈도와 계급 경계 값을 반환합니다.

도수 분포표 작성: np.histogram의 결과를 기반으로 도수 분포표를 작성합니다.

계급값: 각 계급의 중앙값을 계산하여 계급값으로 사용합니다.
빈도: 각 계급의 빈도(데이터가 해당 계급에 속하는 개수)를 나타냅니다.
상대도수: 각 계급의 빈도를 전체 데이터 개수로 나눈 값으로, 해당 계급의 비율을 나타냅니다.
누적상대도수: 해당 계급의 상대도수를 누적하여 나타낸 값으로, 해당 계급까지의 누적 비율을 나타냅니다.
예를 들어, 다음은 NumPy를 사용하여 도수 분포표를 만드는 예제 코드입니다:

import numpy as np

# 데이터 준비
data = np.array([22, 25, 30, 35, 28, 18, 20, 32, 25, 28, 22, 30, 22, 28])

# 계급(빈) 설정
bin_edges = [15, 20, 25, 30, 35]

# np.histogram 사용하여 빈도 계산
hist, _ = np.histogram(data, bins=bin_edges)

# 도수 분포표 작성
class_midpoints = [(bin_edges[i] + bin_edges[i+1]) / 2 for i in range(len(bin_edges) - 1)]
frequency = hist
relative_frequency = frequency / len(data)
cumulative_relative_frequency = np.cumsum(relative_frequency)

# 결과를 데이터프레임으로 변환
result_df = pd.DataFrame({
    "계급값": class_midpoints,
    "빈도": frequency,
    "상대도수": relative_frequency,
    "누적상대도수": cumulative_relative_frequency
})

# 결과 출력
print(result_df)

위 코드는 주어진 데이터를 계급으로 나누어 각 계급의 빈도, 상대도수 및 누적상대도수를 계산하고 출력합니다. 이렇게 계산된 값을 이용하여 도수 분포표를 작성할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글

t-검정 수행  (0) 2023.08.09
Tukey 이상치 검출  (0) 2023.08.09
DataFrame 인덱싱  (0) 2023.08.08
pandas와 numpy의 var()과 ddof  (0) 2023.08.08
vectorize, apply, map  (0) 2023.08.08