(파이썬) 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): 한 배열에는 포함되지만 두 배열 모두에는 포함되지 않는 원소들의 집합인 대칭차집합을 반환한다.
예를들어, 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): 한 배열에는 포함되지만 두 배열 모두에는 포함되지 않는 원소들의 집합인 대칭차집합을 반환한다.
댓글
댓글 쓰기