[PYTHON] numpy 배열의 n 번째 항목마다 서브 샘플링
PYTHONnumpy 배열의 n 번째 항목마다 서브 샘플링
저는 초보자입니다. 나는 길고 매끄러운 배열에서 데이터를 추출하려고합니다. 내가해야 할 일은 배열의 정의 된 위치부터 시작한 다음 배열의 끝까지 해당 위치의 모든 n 번째 데이터 포인트를 서브 샘플링하는 것입니다.
기본적으로 내가 가진다면
a = [1,2,3,4,1,2,3,4,1,2,3,4....]
나는 이것을 [1]에서 시작하여 거기에서 네 번째 점을 모두 샘플링하여 원하는 것과 같은 것을 만들어 내고 싶습니다.
b = [2,2,2.....]
해결법
-
==============================
1.numpy의 슬라이싱을 사용하면 간단하게 시작 : 중지 : 단계.
numpy의 슬라이싱을 사용하면 간단하게 시작 : 중지 : 단계.
>>> xs array([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]) >>> xs[1::4] array([2, 2, 2])
이렇게하면 원본 데이터의보기가 만들어 지므로 일정 시간입니다. 또한 원래 배열의 변경 사항을 반영하고 전체 원래 배열을 메모리에 유지합니다.
>>> a array([1, 2, 3, 4, 5]) >>> b = a[::2] # O(1), constant time >>> b[:] = 0 # modifying the view changes original array >>> a # original array is modified array([0, 2, 0, 4, 0])
위의 사항 중 하나라도 문제가 발생하면 명시 적으로 복사본을 만들 수 있습니다.
>>> a array([1, 2, 3, 4, 5]) >>> b = a[::2].copy() # explicit copy, O(n) >>> b[:] = 0 # modifying the copy >>> a # original is intact array([1, 2, 3, 4, 5])
이것은 일정한 시간이 아니지만 결과는 원래 배열에 묶여 있지 않습니다. 복사본은 또한 메모리에서 연속적이어서 일부 작업을 더 빨리 수행 할 수 있습니다.
from https://stackoverflow.com/questions/25876640/subsampling-every-nth-entry-in-a-numpy-array by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] "For"루프 첫 번째 반복 (0) | 2018.10.21 |
---|---|
[PYTHON] Python을 사용하여 JSON 데이터를 파일로 멋지게 인쇄 (0) | 2018.10.21 |
[PYTHON] x보다 큰 첫번째 파이썬리스트 인덱스? (0) | 2018.10.21 |
[PYTHON] 파이썬으로 모듈을 "다시 가져 오는"다음에 코드를 가져온 후에 변경하는 방법 (0) | 2018.10.21 |
[PYTHON] 파이썬에서 클래스에 대한 파일 경로를 얻으려면 어떻게해야합니까? (0) | 2018.10.21 |