11. Numpy 재정리 - 생성, 인덱싱, 슬라이싱, 재구조화
1. 배열 생성
1) 그냥 np.array()에 넣어준다.

2) zeros, ones, full, eye

3) arange, linspace

4) random.random / random.normal / random.randint

2. 인덱싱
1) [행, 열]로 인덱싱하면 됨.

3. 슬라이싱
기본적으로 x[start : stop : step]
1) 1차원 슬라이싱

2) 다차원 슬라이싱


3) 슬라이싱의 특징
일부를 슬라이싱 한 뒤, 값을 변경하면 원본 데이터의 값이 변경된다.

원본이 변경되지 않게 값을 수정하고 싶다면, 하드카피를 이용해서 수정해야 한다.
copy( )

4. 배열의 재구조화, 연결, 분할
1) 재구조화 reshape( )
1차원배열을 다차원으로, 다차원배열을 1차원으로 쉽게 바꿀 수 있다.

데이터의 개수와 행 * 열의 개수가 같지 않으면, 에러발생.
2) 연결. concatenate( ), vstack( ) , hstack( )
concatenate는 같은 차원에서만 가능. 행, 열을 설정하면 어느 방향이나 가능.
vstack과 hstack은 다른 차원도 가능하지만, 방향이 정해져 있음.

3) 분할. split( ), hsplit( ), vsplit( ), dsplit( )
1차원에서는 split( )이 편함.
split(나눌 대상, [index number])로 하면 됨.

2차원에서는 hsplit( ), vsplit( )이 편함.
hsplit(나눌 대상, [행 또는 열 index]) 로 사용

3차원에서는 dsplit( )을 사용하면 됨.