본문 바로가기
AI/Machine-Learning

[NumPy] choose()

by Wikinist 2023. 9. 8.

np.choose 함수는 NumPy 라이브러리에서 제공하는 함수 중 하나로, 배열에서 선택하고자 하는 인덱스 배열을 기반으로 새로운 배열을 생성하는데 사용됩니다. 주로 다른 배열의 값을 선택하여 새로운 배열을 생성하는 데에 활용됩니다. 함수의 일반적인 형식은 다음과 같습니다.

numpy.choose(choices, choices_list)

choices: 선택하려는 인덱스를 담고 있는 배열입니다.
choices_list: 선택 옵션(배열 또는 값)을 담고 있는 리스트입니다. 이 리스트의 각 요소는 선택 가능한 값 또는 배열을 나타냅니다.
choices 배열의 각 요소는 choices_list에서 해당 인덱스에 해당하는 값을 선택하게 됩니다. choices 배열의 모든 요소에 대해 선택 작업이 수행되어 새로운 배열이 생성됩니다.

예제 1

다음은 간단한 예제를 통해 np.choose 함수를 설명합니다.

import numpy as np

choices = np.array([0, 1, 0, 2])
choices_list = [np.array([10, 11, 12, 13]), np.array([20, 21, 22, 23]), np.array([30, 31, 32, 33])]

result = np.choose(choices, choices_list)
print(result)

위 예제에서는 choices 배열의 각 요소가 choices_list에서 해당 인덱스에 해당하는 값을 선택하므로 결과는 다음과 같이 출력됩니다:

[10 21 12 33]

choices 배열의 첫 번째 요소인 0은 choices_list에서 첫 번째 배열을 선택하고, 두 번째 요소인 1은 두 번째 배열을 선택하며, 이런 식으로 결과 배열이 생성됩니다.

예제 2

np.choose 함수를 사용하여 배열을 선택하면 선택된 배열 내에서도 원하는 위치의 값을 선택할 수 있습니다. 이는 NumPy 배열의 인덱싱을 통해 구현됩니다. 선택한 배열 내에서 임의의 숫자 또는 요소를 선택하려면 해당 배열을 더 깊게 인덱싱하면 됩니다.

예를 들어, 다음과 같이 선택 옵션(choices_list)에 포함된 각 배열 내에서 원하는 값을 선택할 수 있습니다:

import numpy as np

choices = np.array([0, 1, 0, 2])
choices_list = [np.array([10, 11, 12, 13]), np.array([20, 21, 22, 23]), np.array([30, 31, 32, 33])]

# 선택 옵션 배열을 사용하여 각 배열 내에서 특정 값을 선택
result = np.choose(choices, [arr[1] for arr in choices_list])

print(result)

위의 예제에서는 choices 배열을 사용하여 choices_list에서 각 배열을 선택하고, 각 선택된 배열에서 [1] 인덱스 위치의 값을 선택하고 있습니다. 따라서 결과는 다음과 같이 출력됩니다.

[11 21 11 32]

choices 배열의 첫 번째 요소인 0은 첫 번째 배열을 선택하고, 두 번째 요소인 1은 두 번째 배열을 선택하며, 이런 식으로 선택된 배열 내에서 [1] 인덱스 위치의 값을 선택하게 됩니다.

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

'AI > Machine-Learning' 카테고리의 다른 글

[NumPy] where  (0) 2023.09.08
Density clustering  (0) 2023.09.08
계층적 클러스터링 함수  (0) 2023.09.08
계층적 군집화(Hierarchical Clustering)  (0) 2023.09.08
[NumPy] newaxis  (0) 2023.09.08