[python] NumPy를 사용하여 두 배열 간의 유사도를 계산하는 방법을 알려주세요.

NumPy는 파이썬에서 과학적 계산을 위한 핵심 패키지로, 다차원 배열을 다루는 데 유용한 기능을 제공합니다. 배열의 유사도를 계산하기 위해서는 NumPy의 함수를 활용할 수 있습니다.

두 배열의 유사도를 계산하는 가장 일반적인 방법 중 하나는 코사인 유사도(Cosine Similarity)를 사용하는 것입니다. 코사인 유사도는 벡터 간의 각도를 이용하여 유사도를 계산합니다. 유사도 값은 -1에서 1 사이의 범위를 가지며, 1에 가까울수록 두 배열이 유사함을 의미합니다.

아래는 NumPy를 사용하여 두 배열 간의 코사인 유사도를 계산하는 예제 코드입니다:

import numpy as np

def cosine_similarity(a, b):
    dot_product = np.dot(a, b)
    norm_a = np.linalg.norm(a)
    norm_b = np.linalg.norm(b)
    similarity = dot_product / (norm_a * norm_b)
    return similarity

array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

similarity_score = cosine_similarity(array1, array2)
print("두 배열의 코사인 유사도:", similarity_score)

이 예제에서는 numpy.dot() 함수를 사용하여 두 배열의 내적을 구하고, numpy.linalg.norm() 함수를 사용하여 각 배열의 노름을 계산합니다. 이렇게 구한 내적과 노름을 이용하여 코사인 유사도를 계산하고 값을 반환합니다.

결과를 출력할 때, 두 배열의 코사인 유사도를 나타내는 similarity_score 변수를 사용합니다.

NumPy를 사용하여 두 배열 간의 유사도를 계산하는 방법에 대해 알려드렸습니다. 이 방법을 활용하면 다양한 데이터 분석이나 패턴 인식 등의 작업에서 유용하게 사용할 수 있습니다.

참고 문서: