1일차) 넘파이 (1)

BinBin·2021년 12월 31일
1

머신러닝 공부

목록 보기
2/10
post-thumbnail

머신러닝에서 가장 중요한 부분이라고 하면 '선형대수'와 '통계학'이라고 할 수 있는데,
파이썬에서 이런 것들을 손쉽게 구현해서 응용할 수 있는 라이브러리는 넘파이라고 할 수 있습니다.

넘파이 불러오기 💻

실습을 하기 전 Anaconda를 설치하면 넘파이나 판다스 같은 라이브러리들이 함께 설치가 됩니다. 설치과정은 구글링을 통해 쉽게 찾을 수 있으니 생략하겠습니다.

새로운 주피터 노트북을 생성한 다음에 파이썬에서 라이브러리를 불러오는 함수인
import를 사용해서 넘파이를 불러오는데 이때 넘파이를 numpy라고 그대로 불러오는 것이
아닌 사용하기 편하게 numpy대신 np라고 불러올 수 있도록

import numpy as np

이런 식으로 작성하시면 앞으로 넘파이를 사용할 떄 np라고만 적어줘도 사용하실 수 있습니다.
똑같은 방식으로 판다스를 불러올 때도 pandas가 아닌 pd로 불러주는데 이에 대해선 나중에 설명하겠습니다.

넘파이의 데이터 타입 ndarray 💡

파이썬에는 다양한 데이터 타입이 있는데 문자열을 나타내는 String, 정수를 나타내는 Integer, 부동 소수점을 나타내는 Float 등이 있는데 넘파이에도 이런 데이터 타입이 있는데
이를 ndarray라고 합니다.

array라는 단어가 붙은 만큼 ndarray도 일종의 배열과 같은 데이터 타입이라 여러 행과 열로 이루어질 수 있습니다.

그런데 이미 파이썬에는 List라고 하는 것이 있고 이것 또한 다차원의 배열을 만들어낼 수 있습니다.

그런데 왜 굳이 넘파이의 데이터 타입인 ndarray를 생성하고 이용할까요?

List VS ndarray 🥊

먼저 파이썬으로 리스트를 생성하는 것을 보여드리겠습니다.

a = [1, 2, 3, 4, 5, 6]

이제 a라는 이름의 리스트가 생겼고 리스트 안에는 int 타입을 가지고 있는 원소들이 있는데 이를 type()함수로 데이터 타입을 보면 리스트 클래스라고 출력이 됩니다.

이번에는 2차원으로 리스트를 생성해보겠습니다.

b = [[1, 2, 3], [4, 5, 6]]

리스트 안에 리스트를 삽입함으로써 2차원 리스트를 생성하였습니다.
이와 같이 파이썬은 대괄호를 계속해서 사용하는 방식으로 차원을 늘려갑니다.

이제 넘파이로 배열을 생성하는 법을 보여드리겠습니다.

위에서 넘파이를 불러올 때 numpy 대신 np라고 불러오기로 약속을 하였는데
배열을 생성하는 함수는 np.array()입니다.

이를 이용해 배열을 생성해보자면

array1 = np.array([1, 2, 3, 4, 5, 6])

이렇게 array1이라는 이름을 가진 배열을 생성하고 print()함수로 출력을 해보면
파이썬 리스트처럼 똑같이 '[1, 2, 3, 4, 5, 6]' 이런 식으로 출력됩니다.

하지만 array1의 데이터 타입을 출력하면 List가 아닌 <class 'numpy.ndarray'>로
출력이 되어 ndarray라는 것을 알 수 있습니다.

또한 파이썬의 List와 마찬가지로 대괄호를 늘이는 방식으로 차원의 수를 증가시킬 수 있습니다.

'엥? 그럼 list나 ndarray나 똑같은거 아니냐? 뭣하러 귀찮게 numpy 전용 함수까지 써가면서 배열을 생성하지' 라는 생각을 하실 수 있습니다.

머신러닝에서 넘파이가 더 좋은 이유!! 👍

이곳에 있는 글을 읽어보세요!
참고링크

위 링크의 내용을 간단히 요약하자면

  1. 더 적은 메모리를 사용할 수 있다
  2. 파이썬 리스트에 비해 더 빠르다

이 정도인데 이것 말고도 뒤에서 설명할 reshape나 zeros 등 넘파이에서 사용할 수 있는
함수들이 방대하고 통계와 선형대수를 위해 만들어진 라이브러리인 만큼 수학적인 연산에 있어서 매우 효율적입니다.

따라서 머신러닝을 이용하는 사람들은 모두 넘파이를 기본적으로 사용하는 이유입니다.

다음 포스팅에서는 넘파이에서 사용하는 변수와 함수들에 대해 알아보겠습니다.

profile
빅데이터에 관심이 많은 대학생입니다

0개의 댓글