ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Numpy ] Python 라이브러리 Numpy_1
    코딩 공부/Numpy 2021. 7. 7. 17:25

    <개요>

    Numpy는 numerical Python의 줄임말로 Python에서 산술 계산을 위한 가장 중요한 필수 패키지 중 하나입니다. 

     

    Numpy에서 제공하는 것들은 다음과 같습니다. 

    • 효율적인 다차원 배열인 ndarray는 빠른 배열 계산과 유연한 브로드캐스팅 기능을 제공
    • 반복문을 작성할 필요 없이 전체 데이터 배열을 빠르게 계산할 수 있는 표준 수학 함수
    • 배열 데이터를 디스크에 쓰거나 읽을 수 있는 도구와 메모리에 적재된 파일을 다루는 도구
    • 선형대수, 난수 생성기, 푸리에 변환 기능

    Numpy 특징

    • 넘파이는 내부적으로 데이터를 다른 내장 파이썬 객체와 구분된 연속된 메모리 블록에 저장한다.
    • 넘파이 배열은 또한 내장 파이썬의 연속된 자료형들보다 훨씬 더 적은 메모리를 사용한다.
    • 넘파이 연산은 파이선 반복문을 사용하지 않고 전체 배열에 대한 복잡한 게산을 수행할 수 있다.

    기본적으로 Numpy를 사용하기 위해서는 라이브러리를 다운로드하고 import 구문을 통해서 사용할 수 있습니다. 

    import numpy as np

    Numpy를 사용하는 것과 일반적인 파이썬 리스트를 이용하는 것의 성능 차이를 비교해봅시다. 

    비교를 위해서 numpy 배열과 파이썬 리스트를 생성해줍니다. 

    import numpy as np
    my_arr = np.arange(1000000)
    my_list = list(range(1000000))

    각 배열과 리스트 원소에 2를 곱해봅시다. 

    # 넘파이 배열 
    %time for _ in range(10): my_arr2 = my_arr*2

     

    #파이썬 리스트
    %time for _ in range(10): my_list2 = [x*2 for x in my_list]

    Numpy를 사용한 코드가 일반 리스트로 작성한 코드보다 몇 배 이상 빠르고 메모리도 더 적게 사용하는 것을 확인할 수 있습니다. 


    <Numpy ndarray : 다차원 배열 객체>

    Numpy 핵심 기능 중 하나는 ndarray라고 하는 N차원 배열 객체인데, 파이썬에서 사용할 수 있는 대규모 데이터 집합을 담을 수 있는 빠르고 유연한 자료구조입니다. 

     

    몇 가지 코드를 살펴보면서 ndarray의 특징을 살펴봅시다. 

     

    import numpy as np
    data = np.random.randn(2,3) #random데이터 생성
    data

    랜덤으로 생성한 ndarray에 각 원소에 10을 곱해봅시다. 

    data*10

    각각의 원소에 10이 곱해진 것을 볼 수 있습니다. 

     

    data + data

    더하기 연산을 하면 각 위치에 맞는 원소끼리 더해진 것을 볼 수 있습니다.


    ndarray는 같은 종류의 데이터를 담을 수 있는 포괄적인 다차원 배열입니다.  즉 모든 원소는 같은 자료형이어야합니다. 

    모든 배열은 각 차원의 크기를 알려주는 shape라는 튜플과 배열에 저장된 자료형을 알려주는 dtype이라는 객체를 가지고 있습니다. 

     

    이렇게 Numpy의 기초적인 특징과 ndarray에 대해서 맛보기를 진행했습니다. 

    저자가 말하길

    "배열위주의 프로그래밍과 생각하는 방법에 능숙해지는 것이
    Python을 이용한 과학 계산의 고수가 되는 지름길입니다."

     

    다음에는 ndarray를 생성하는 다양한 방법에 대해서 살펴보겠습니다. 

Designed by Tistory.