파이썬(Python)/numpy

[Python] Numpy와 list 차이 (정의, 사용법, 예제코드)

끄적끄적아무거나 2021. 10. 20. 08:37
반응형

 

목차

     

     

     

     

     

    넘파이란? (What is Numpy?)

     

     

    NumPy는 Numerical Python 의 줄임말로 파이썬에서 제공하는 Libary 중에 하나 입니다. Numpy는 배열(array) 값을 입력으로 받아서 처리를 합니다. 

     

    넘파이에서 주요하게 처리하는 과정은 아래와 같습니다.

     

    • linear algebra (선형 대수)
    • fourier transform (후리에/푸리에 변환)
    • matrices (행렬)
    반응형

     

     

     

     

    넘파이(Numpy) 사용하는 이유

     

    Numpy 사용 전에 배열을 처리할때 리스트(list)를 사용해서 값을 리스트에 받아서 처리하였습니다. 배열을 수학적으로 처리할때 코딩이 복잡해질 수 있고 코딩의 효율에 따라 시간이 오래 걸립니다. 

     

    그래서 Numpy가 등장했습니다. C코드로 파이썬 기저에서 작동하고 일반적으로 파이썬의 리스트보다 50배 이상 빠르다고 알려져 있습니다. 

     

    그리고 Numpy를 사용하게 되면 함수를 가져다 쓰면 되기 때문에 코딩 중에 발생할 수 있는 에러를 줄여 줍니다.

     

     

     

     

     

    넘파이(Numpy) 와 리스트 (List) 예제 코딩으로 비교하기

     

    예제 코드>>

    import time
    import numpy as np
    
    list_arr = []
    
    for _ in range(200000):
        list_arr.append(_)
    
    numpy_arr = np.array(list_arr)
    
    start_time = time.time()
    print(list_arr[5000])
    print("리스트 인덱싱 시간 : ", time.time()- start_time)
    
    
    start_time = time.time()
    print(numpy_arr[5000])
    print("넘파이 인덱싱 시간 : ", time.time()- start_time)

     

    결과>>

    5000
    리스트 인덱싱 시간 :  0.0004177093505859375
    5000
    넘파이 인덱싱 시간 :  0.0010097026824951172

     

    주석>>

     

    코드는 넘파이와 리스트를 이용해서 배열 값을 넣고 indexing을 통해서 누가 빨리 값을 불러 오는 지를 시험하는 코드입니다.

     

    결론 부터 말하자면 index 번호에 따라 그때 그때 결과가 달랐습니다.

     

    넘파이와 리스트의 속도 장점은 인덱싱에서 나오는 것이 아닌 앞서 얘기한 선형 대수, 푸리에 변환과 같은 수학적 모델에서 동작 시킬 때 빠르게 동작한다는 것을 알 수 있었습니다.

     

     

    반응형