sort(axis = -1) 메서드 : axis를 기준으로 요소를 오름차순 정렬
np.sort(axis = -1) : axis를 기준으로 요소를 오름차순 정렬
np.argsort(arr) : 정렬 순서를 반환
(1) 기존 문법에서의 자료 순번 변경
(2) Numpy 문법
(3) 2차원 배열
각 차원에 따라 배열이 참조하는 인덱스의 개수가 다름
인덱싱으로 참조한 요소에 대해 수정 가능
인덱스 배열을 전달하여 여러 개의 요소 참조
0 부터 23 까지 1씩 증가하는 값을 아이템으로 가지는 1차원 배열 생성
1차원 배열 : 인덱싱 문법과 동일하게 적용된다. (출력 및 변환)
2차원 배열 : reshape 후 인덱싱으로 자료 접근
3차원 배열
axis 별로 범위 지정
열만 조회하는 경우 : 전체 행에 슬라이싱으로 접근 후 특정 열을 조회
기본 문법 슬라이싱
2차원 배열
신기한 것은 얕은 복사로 인해 원본 역시 변경이 일어났다는 점이다. (s_arr = b로 처리한 결과)
인덱싱, 슬라이싱을 통해 반환된 배열은 원본 배열에 대해 독립적인 새로운 객체가 아닌 원본 배열과 종속적인 객체
원본과 독립적인 복사본인 배열을 생성 : arr.copy() / np.copy(arr)
얕은 복사와 깊은 복사
다른 배열로 확인해 보자
arr.ravel(), np.ravel(arr)
!!!! 확인 결과 깊은 복사를 위해서는 .copy()함수를 통해 복사했을 때만 원본에 영향이 없는 깊은 복사가 일어난다. np.ravel()과 arr.ravel()은 형식 상관없이 얕은 복사가 일어난다(원본에 영향)
arr.reshape(new_shape), np.reshape(arr, new_shape)
다차원 배열을 1차원으로 변환
1) 요소 변경
2) 요소 추가
np.append(arr, values, axis=None)
각자의 범위에서 1씩 증가하는 숫자로 3*3 구조 배열 a와 b 생성
np.insert(arr, idx, values, axis=None)
여기에
3) 요소 삭제
4) 배열 결합
np.concatenate((arr1, arr2, ...), axis=0)
배열들 생성
5) 배열 분리