[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를 사용하여 두 배열 간의 유사도를 계산하는 방법에 대해 알려드렸습니다. 이 방법을 활용하면 다양한 데이터 분석이나 패턴 인식 등의 작업에서 유용하게 사용할 수 있습니다.
참고 문서:
- NumPy 공식 문서: https://numpy.org/doc/
- 코사인 유사도 (위키백과): https://ko.wikipedia.org/wiki/%EC%BD%94%EC%82%AC%EC%9D%B8_%EC%9C%A0%EC%82%AC%EB%8F%84