[python] NumPy로 배열을 정규화하거나 표준화하는 방법은 무엇인가요?

정규화(Normalization)

import numpy as np

def normalize(arr):
    min_val = np.min(arr)
    max_val = np.max(arr)
    normalized_arr = (arr - min_val) / (max_val - min_val)
    return normalized_arr

위의 코드에서 normalize 함수는 입력 배열 arr을 받아서 정규화된 배열을 반환합니다. np.min() 함수를 사용하여 배열의 최소값을 찾고, np.max() 함수를 사용하여 배열의 최대값을 찾습니다. 그런 다음, 각 원소에서 최소값을 빼고, 최대값과 최소값의 차이로 나누어 정규화된 배열을 계산합니다.

표준화(Standardization)

import numpy as np

def standardize(arr):
    mean_val = np.mean(arr)
    std_val = np.std(arr)
    standardized_arr = (arr - mean_val) / std_val
    return standardized_arr

위의 코드에서 standardize 함수는 입력 배열 arr을 받아서 표준화된 배열을 반환합니다. np.mean() 함수를 사용하여 배열의 평균을 계산하고, np.std() 함수를 사용하여 배열의 표준 편차를 계산합니다. 각 원소에서 평균을 빼고, 표준 편차로 나누어 표준화된 배열을 계산합니다.

이제, 주어진 배열을 normalize 또는 standardize 함수에 전달하여 원하는 변환을 수행할 수 있습니다.

예제

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# 정규화
normalized_arr = normalize(arr)
print(normalized_arr)

# 표준화
standardized_arr = standardize(arr)
print(standardized_arr)

위의 예제에서는 1부터 5까지의 원소를 가진 배열을 생성한 후, 각각의 변환 함수에 전달하여 정규화된 배열과 표준화된 배열을 출력합니다.

참고 자료: