Numpy, 한 번 알아보자! - 2. Numpy 기본 사용법

2019. 3. 5. 23:32Python/Data Science


저번 시간에는...


저번 시간에는 Numpy에 대해서 알아보고, 간단하게 설치 및 실습을 해보는 시간을 가졌다. Numpy에서 가장 기본이 되는 데이터 타입은 ndarray 라고 할 수 있을 것이다! 한 번 ndarray 를 만들어 보자!


저번 시간의 내용을 복습해보자.

  • ndarray.ndim : 현재 행렬의 차원 갯수를 반환한다
  • ndarray.shape : 현재 행렬의 행렬 모양을 반환한다.
  • ndarray.size : 현재 행렬에 담긴 원소 갯수를 반환한다.
  • ndarray.dtype : 현재 행렬의 원소의 데이터 타입을 반환한다.
  • ndarray.itemsize : 현재 행렬의 원소의 Byte 사이즈를 반환한다.
  • ndarray.data : 현재 행렬을 담고 있는 메모리의 버퍼 위치를 반환한다.


np.array(list)


npnumpy 모듈이라고 가정 했을 때, 그 모듈에 있는 array 함수를 이용하여 ndarray 객체를 만들 수 있다. 파라미터로는 list 객체가 들어 간다. nested list를 통해서 2차원 배열을 표현 할 수 있다.




dtype 어트리뷰트에 데이터 타입을 넣어 ndarray의 원소의 데이터 타입을 정할 수도 있다.



np.zeros((tuple)), np.ones((tuple)), np.empty((tuple))


np.zeros, np,ones를 이용해서 각각 0, 1으로 초기화 된 행렬 ndarray를 사용 할 수 있다. 파라미터로 tuple 객체를 넣어 각 차원의 size를 설정 할 수 있다. 물론 np.array 처럼 dtype 어트리뷰트를 설정해서 원소의 데이터 타입을 설정 할 수 있다. np.empty는 초기화 되지 않은 ndarray 행렬 객체를 반환한다.



np.arange(start, end, step), ndarray.reshape((tuple))


range 함수와 원리가 비슷하다. 해당하는 숫자들의 리스트들을 ndarray 로 변환한다. ndarray.reshape는 행렬의 모양을 재정의해주는 함수로, 1차원 ndarray를 2차원 ndarray로 만들어 준다.



np.linspace(start, end, num)


start 부터 end 까지 num개의 원소를 가진 ndarray를 반환한다.




np.pi


np.pi원주율 pi를 나타낸다. np.sin(), np.cos() 를 이용할 수도 있다.




ndarray의 연산자


백문이 불여 일견, 차원이 같은 ndarray 끼리는 이런 연산이 가능 하다. 1차원은 다음과 같다.


2차원 행렬 부터는 '@' 을 이용하여 행렬 곱도 가능하다.



물론 행렬 곱을 할 수 없는 두 행렬, 혹은 원소 끼리 대응이 되지 않을 때 원소 곱셈을 시도 했을 시 에러를 발생 시킨다.


(틀린 예)



(올바른 예)



행렬의 합, 최소, 최대를 구할 수 있으며, 행을 기준으로 할 껀지, 열을 기준으로 할 껀지 axis 파라미터를 통해서 정할 수 있다.



쓰다보니 글이 너무 길어 진 것 같다. 다음에는 Numpy의 함수들을 위주로 알아보도록 하겠다!