반응형
다음과 같은 매우 큰 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 IPython 노트북에서 대화 형 matplotlib 창을 어떻게 열 수 있습니까? (0) | 2021.01.28 |
---|---|
파이썬 폴더의 모든 CSV 파일을 반복합니다. (0) | 2021.01.28 |
파이썬 조건이 충족되는 경우에만 dict에 추가 (0) | 2021.01.27 |
파이썬 Python 3에서 개별 바이트 반복 (0) | 2021.01.27 |
파이썬 Python matplotlib 다중 막대 (0) | 2021.01.27 |
댓글