ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] List보다 Numpy 가 빠른이유
    programming/Python 2022. 4. 23. 11:50

    List vs Numpy 

     파이썬에서 List는 여러 값들을 저장할 수 있는 자료구조로써 활용도가 매우 높습니다. 리스트는 다양한 자료형의 데이터를 여러 개를 저장할 수 있으며 쉽게 데이터를 수정할 수 있습니다. 하지만 데이터의 처리 양이 많아지고 처리방법이 복잡해질수록 많은 사람들은 Numpy ndarray를 사용합니다. 오늘은 많은 사람들이 왜 List 보다 Numpy ndarray를 더 많이 사용하는지 알아보도록 하겠습니다.

     

     

    Numpy

    • 큰 matrix 처리 및 다양한 연산 기능을 제공 합니다.
    • 반복문 없이 데이터 배열에 대한 처리를 지원합니다.
    • 선형대수와 관련된 다양한 기능을 제공합니다.
    • C, C++, 포트란 등의 언어와 통합이 가능합니다.

     

     

     

    Built-in List 보다 Numpy의 ndarray 가 왜 빠른가?

     

    메모리 접근 방식에 대한 차이

    • ndarray는 int type의 data를 저장할 때 element들이 메모리에 연속적으로 저장되어 있지만 list의 경우 int type data의 값들이 메모리에 연속적으로 저장돼있지 않고 element의 주소를 가지고 있습니다. 주소를 타고 가더러도 객체 자체가 있고, 객체 내에서 ob_digit으로 간 다음 element에 접근해야 합니다. ndarray에 비해 list가 접근 단계가 많습니다.
    • 리스트는 여러 가지 dtype을 하나의 array에 넣을 수 있지만 numpy의 ndarray는 하나의 배열에 하나의 dtype만 넣을 수 있습니다. 

    출처 : https://www.youtube.com/watch?v=fiYD0yCou4k&t=107s

     

    Numpy 병렬 처리

    • 하나의 작업을 여러 개의 서브 작업으로 나눠서 처리합니다.

     

     

    C언어와 포트란으로 구현 

    • 코드를 기계어로 변환 과정 없이 한 줄 한줄 해석해서 실행하는(인터프린터) 파이썬 보다 코드를 모두 기계어로 변환한 후에 기계어 코드로 실행하는(컴파일) 언어로 만들어져 있습니다.

     

     

    넘파이의 배열 안에는 동일한 타입의 데이터만 지정할 수 있어서 속도적인 측면에서 리스트에 앞서지만 리스트처럼 여러 가지 데이터 타입을 저장할 수 없습니다. 

     

Designed by Tistory.