NumPy에서 2D 배열에서 임의의 행 집합 가져오기
다음은 NumPy에서 2D 배열에서 임의의 행 집합을 가져오는 두 가지 일반적인 방법입니다.
np.random.choice 사용하기:
np.random.choice
함수는 NumPy에서 제공하는 유용한 함수로, 배열에서 임의 요소를 선택하는 데 사용됩니다. 2D 배열에서 임의의 행 집합을 가져오려면 다음과 같이 사용할 수 있습니다.
import numpy as np
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 임의의 행 인덱스 3개 선택
random_row_indices = np.random.choice(arr.shape[0], 3, replace=False)
# 선택된 행 집합 가져오기
random_rows = arr[random_row_indices]
print(random_rows)
이 코드는 먼저 np.random.choice
를 사용하여 배열 arr
에서 3개의 임의 행 인덱스를 선택합니다. replace=False
매개변수는 각 인덱스가 하나만 선택되도록 합니다.
다음으로 선택된 행 인덱스를 사용하여 arr
에서 해당 행을 슬라이싱하여 random_rows
배열에 저장합니다.
import numpy as np
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 행 개수 가져오기
num_rows = arr.shape[0]
# 임의 행 인덱스 3개 생성
random_row_indices = np.random.randint(0, num_rows, 3)
# 선택된 행 집합 가져오기
random_rows = arr[random_row_indices]
print(random_rows)
이 코드는 먼저 배열 arr
의 행 개수를 num_rows
변수에 저장합니다.
다음으로 np.random.randint
를 사용하여 0에서 num_rows - 1
사이의 3개의 임의 행 인덱스를 생성합니다.
위의 두 방법 모두 2D 배열에서 임의의 행 집합을 효과적으로 가져오는 데 사용할 수 있습니다. 어떤 방법을 사용할지는 개인의 선호와 특정 상황에 따라 다릅니다.
예제 코드: NumPy에서 2D 배열에서 임의의 행 집합 가져오기
import numpy as np
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 임의의 행 인덱스 3개 선택
random_row_indices = np.random.choice(arr.shape[0], 3, replace=False)
# 선택된 행 집합 가져오기
random_rows = arr[random_row_indices]
print(random_rows)
import numpy as np
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 행 개수 가져오기
num_rows = arr.shape[0]
# 임의 행 인덱스 3개 생성
random_row_indices = np.random.randint(0, num_rows, 3)
# 선택된 행 집합 가져오기
random_rows = arr[random_row_indices]
print(random_rows)
설명:
- 두 예제 모두
arr
이라는 2D 배열을 만듭니다. 예제 2
에서는arr
의 행 개수를num_rows
변수에 저장합니다. 다음으로np.random.randint
를 사용하여 0에서num_rows - 1
사이의 3개의 임의 행 인덱스를 생성합니다.- 출력은 다음과 같을 수 있습니다.
[[4 5 6]
[7 8 9]
[1 2 3]]
이 코드는 2D 배열에서 임의의 행 집합을 가져오는 방법을 보여주는 두 가지 예시일 뿐입니다. 실제 상황에서는 필요에 따라 코드를 수정해야 할 수도 있습니다.
NumPy에서 2D 배열에서 임의의 행 집합을 가져오는 다른 방법
다음은 두 가지 추가 방법입니다.
for 루프 사용하기:
다음은 for
루프를 사용하여 2D 배열에서 임의의 행 집합을 반복적으로 선택하는 방법입니다.
import numpy as np
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 임의 행 개수 선택
num_random_rows = 3
# 선택된 행 저장할 빈 리스트 만들기
random_rows = []
# 임의의 행 num_random_rows 개수만큼 반복
for _ in range(num_random_rows):
# 임의 행 인덱스 생성
random_row_index = np.random.randint(0, arr.shape[0])
# 선택된 행을 리스트에 추가
random_rows.append(arr[random_row_index])
# 결과 배열로 변환
random_rows = np.array(random_rows)
print(random_rows)
이 코드는 먼저 num_random_rows
변수에 임의 행 개수를 저장합니다.
다음으로 빈 리스트 random_rows
를 만듭니다.
마지막으로 for
루프를 사용하여 num_random_rows
개수만큼 반복합니다. 루프의 각 반복에서 임의 행 인덱스를 생성하고 해당 행을 random_rows
리스트에 추가합니다.
루프가 끝나면 random_rows
리스트는 선택된 행으로 채워집니다.
Pandas 라이브러리 사용하기 (선택 사항):
pandas
는 Python에서 데이터 분석을 위한 인기 있는 라이브러리입니다. NumPy 배열을 pandas
DataFrame으로 변환한 다음 DataFrame에서 임의 행을 선택하는 데 sample
메서드를 사용할 수 있습니다.
import numpy as np
import pandas as pd
# 2D 배열 만들기
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# NumPy 배열을 Pandas DataFrame으로 변환
df = pd.DataFrame(arr)
# 임의 행 num_random_rows 개수만큼 선택
random_rows = df.sample(num_random_rows)
# 결과를 NumPy 배열로 변환
random_rows = random_rows.to_numpy()
print(random_rows)
이 코드는 먼저 pandas
라이브러리를 가져옵니다.
다음으로 arr
배열을 pandas
DataFrame으로 변환합니다.
마지막으로 sample
메서드를 사용하여 num_random_rows
개수만큼 임의 행을 DataFrame에서 선택합니다.
선택된 행은 random_rows
변수에 저장되고, 이 변수는 NumPy 배열로 변환됩니다.
위에 제시된 방법 외에도 NumPy에서 2D 배열에서 임의의 행 집합을 가져오는 다른 방법들이 있습니다. 사용하는 방법은 개인의 선호와 특정 상황에 따라 다릅니다.
python numpy