Python NumPy Broadcasting

EDA with Python - NumPy Broadcasting

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. 개요

  • NumPy는 C언어로 구성되었으며, 고성능의 수치계산을 위해 나온 패키지이며, Numerical Python의 약자이다.
  • Python을 활용한 데이터 분석을 수행할 때, 그리고 데이터 시각화나 전처리를 수행할 때, NumPy는 매우 자주 사용되기 때문에 한번쯤은 꼭 다듬고 가는 것이 중요하다.
  • 이전 포스트에서는 Python - NumPy 소개 및 다양한 객체 생성에 대해 다루었으니, 본 포스트 읽기에 앞서서 기본적인 개념에 대해 확인하기를 바란다.

II. 모듈 Import

import numpy as np
print(np.__version__)
1.18.4

III. NumPy 기본 활용법

  • NumPy 객체 생성을 한 뒤에, 파일 저장, 서로 다른 배열끼리의 사칙연산 등을 수행할 수 있다.

(1) NumPy 객체 파일 저장 및 불러오기

  • savetxt, loadtxt, 그리고 genfromtxt 함수를 활용하여 객체를 불러오는 예제를 실습한다.
# 객체 생성 후 저장하기
x = np.arange(0.0, 50.0, 1.0)
print(x)
np.savetxt('data.out', x, delimiter=',')
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17.
 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
!ls
data.out  sample_data
  • 현재 폴더에 data.out 파일이 생성된 것을 확인할 수 있다.
# `data.out` 불러오기
z = np.loadtxt('data.out', unpack=True)
print(z)
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17.
 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
  • 정상적으로 data.out을 불러와서 z객체에 저장된 것을 확인할 수 있다.
# genfromtxt 활용
my_array2 = np.genfromtxt('data.out', 
                          skip_header=1, 
                          filling_values=-999)
print(my_array2)
[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
  • z객체와 마찬가지로 my_array2도 객체가 정상적으로 생성된 것을 확인할 수 있다.