Numpy - ndarray(1)
ndarray 란?
-
N 차원(Dimension) 배열(Array) 객체를 말한다.
-
numpy는 ndarray를 기반으로 하여 선형대수 연산, 다양한 집합연산 등을 지원한다.

ndarray 생성
-
numpy모듈의 array() 함수로 생성한다.
-
array()에 들어갈 인자는 주로 파이썬의 list나 ndarray가 입력된다.

ndarray의 형태(Shape)와 차원(ndim)
-
Shape는 ndarray의 형태를 알려주는 함수이다.
-
ndarray의 형태(shape)는 ndarray.shape로 알수있으며, 차원(ndim)은 ndarray.ndim로 알수 있다.


ndarray 타입(type)
-
ndarray 내부의 데이터 타입은 숫자형, 문자형, 불린 형 등 모두가능하다.
-
ndarray 내부의 데이터 타입은 같은 데이터 타입으로 이루어져 있어야 합니다. 즉 한개의 ndarray객체에 int형과 float형의 데이터는 함께있을 수 없습니다.
-
ndarray 내부에 데이터 타입이 섞여있다면 한가지 데이터 타입으로 자동으로 통일됩니다. 예를들어 정수형과 실수형의 데이터가 섞여있다면, 모든 데이터 타입이 실수형으로 바뀝니다.

ndarray 타입(type) 변환
-
변경을 원하는 타입을 astype()에 인자로 입력한다.
-
주로 대용량 데이터를 ndarray로 만들 때 메모리를 절약하기 위해서 사용한다. (0, 1, 2와 같은 숫자들을 64bit의 float형 보다 8bit, 16bit의 int형으로 형변환 하는게 메모리를 절약할 수 있다.)

ndarray 와 axis 축
- ndarray는 행(Row), 열(Column)과 같은 명칭을 사용하지않고, axis0, axis1, axis2 와 같은 차원의 방향을 나타내는 용어를 사용한다.


ndarray를 편리하게 생성하기(arange, zeros, ones)
-
연속되는 값이나 0, 또는 1로 이루어져 있는 ndarray를 생성해야 할 경우 arange(), zeros(), ones()를 사용하여 쉽게 생성할 수 있다.
-
주로 테스트용 데이터를 만들거나, 대규모의 데이터를 일괄적으로 초기화 할 경우에 사용한다.
-
arange()

- zeros()

- ones()

ndarray의 차원과 크기를 변경하는 reshape()
- reshape()는 ndarray를 특정 차원이나 형태로 변환시킨다. 변환 형태를 함수인자로 부여하면 된다.

- reshape(-1, 5)처럼 함수인자에 -1을 부여하면 -1에 해당하는 axis의 크기는 가변적이며, -1이 아닌 인자값의 axis크기(5)는 고정되어 ndarray의 shape를 변환한다.

- reshape()는 (-1, 1), (-1,)와 같은 형태로 주로 사용되며, 1차원 ndarray를 2차원으로 또는 2차원 ndarray를 1차원으로 변환 시 사용한다.
