본문 바로가기
파이썬

파이썬 Numpy : 2D 배열에서 임의의 행 집합 가져 오기

by º기록 2021. 1. 28.
반응형

다음과 같은 매우 큰 2D 배열이 있습니다.

a=
[[a1, b1, c1],
 [a2, b2, c2],
 ...,
 [an, bn, cn]]

numpy를 사용하면 예를 들어 초기 배열 a 에서 2 개의 임의의 행이있는 새 2D 배열을 쉽게 얻을 수 있습니까 (대체하지 않음)?

예 :

b=
[[a4,  b4,  c4],
 [a99, b99, c99]]

 

해결 방법

 

>>> A = np.random.randint(5, size=(10,3))
>>> A
array([[1, 3, 0],
       [3, 2, 0],
       [0, 2, 1],
       [1, 1, 4],
       [3, 2, 2],
       [0, 1, 0],
       [1, 3, 1],
       [0, 4, 1],
       [2, 4, 2],
       [3, 3, 1]])
>>> idx = np.random.randint(10, size=2)
>>> idx
array([7, 6])
>>> A[idx,:]
array([[0, 4, 1],
       [1, 3, 1]])

일반적인 사례를 위해 종합 :

A[np.random.randint(A.shape[0], size=2), :]

대체되지 않는 경우 (numpy 1.7.0+) :

A[np.random.choice(A.shape[0], 2, replace=False), :]

1.7 이전에 교체하지 않고 무작위 목록을 생성하는 좋은 방법이 없다고 생각합니다. 두 값이 동일하지 않도록 작은 정의를 설정할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/14262654

 

 

반응형

댓글