(파이썬) Numpy라이브러리

*Numpy 라이브러리에서 데이터복사가 되지 않고 뷰에대한 변경만 이루어진다

예를들어, arr갑에 0부터9까지 값이 입력되어있다고 가정하고

arr[5:8]=12로 변경할시 5번쨰부터 7번째값이 12로 변경되는데 이는 실제로 데이터 복사가 이루어진것이아니고 뷰에서만 값이 12로 나오는 것이다

그 이유는 대용량 데이터처리를 위해 설계되었기 때문이다.


복사본을 얻고싶다면 arr[5:8].copy()를 하면 된다



*특정한 순서로 로우를 선택하고 싶은 경우

arr이 8행 4열일 경우

arr[[4,3,0,6]]

4행 3행 0행 6행인 값들을 보여준다.


*색인을 음수로 할 경우

arr[[-3,-5,-7]]

음수로 할 경우 끝에서 부터 색인한다



*각 행의 열들의 위치를 바꿔서 출력

arr[[1,5,7,2]][:,[0,3,1,2]]

-->1행 5행 7행 2행의 열들의 위치 출력 순서가 0열 3열 1열 2열로 출력 된다
-->np.ix_()를 이용해도 된다

arr[np.ix_([1,5,7,2],[0,3,1,2])]



**np.where()

np.where(arr>0,2,arr)

-->arr의 원소가 0보다 크면 2로 출력, 작으면 arr원래의 원소 값을 출력한다

-->np.where(cond1 & cond2,0,np.where(cond1,1,np.where(cond2,2,3)))

-->cond1과 cond2가 0보다 크면 0 cond1만 크면 1 cond2만 크면 2 다 작으면 3이 출력된다



*****배열 집합연산

unique(x) : 배열 x에서 중복된 원소를 제거한 후 정렬하여 반환한다.

intersect(x,y): 배열 x와 y에 공통적으로 존재하는 원소를 정렬하여 반환한다.

union1d(x,y): 두 배열의 합집합을 반환한다.

in1d(x,y): x의 원소 중 y의 원소를 포함하는지를 나타내는 불리언 배열을 반환한다.

setdiff1d(x,y): x와 y의 차집합을 반환한다.

setxor1d(x,y): 한 배열에는 포함되지만 두 배열 모두에는 포함되지 않는 원소들의 집합인 대칭차집합을 반환한다.



댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기