3. Numpy
3-1 NumPy란?
많은 양의 데이터를 처리하려면 파이썬으로는 부족하다!
=> NumPy(Numerical Python) : 수와 파이썬 라이브러리
ex) 그냥 파이썬 문법의 리스트를 사용하는 것보다 넘파이의 배열을 사용하는 게 빠름!
NumPY Array : 메모리 최적화, 연산 최적화
3-2 NumPy와 array
In [1]:
import numpy as np
In [2]:
array1 = np.array([1, 3, 5, 6, 7, 9])
array1
Out[2]:
array([1, 3, 5, 6, 7, 9])
In [3]:
np.zeros(5) # 숫자 0 5개 자동 생성
Out[3]:
array([0., 0., 0., 0., 0.])
In [4]:
np.arange(10) # 0~9 숫자 순서대로 배열
Out[4]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [5]:
np.arange(2,10)
Out[5]:
array([2, 3, 4, 5, 6, 7, 8, 9])
In [6]:
np.arange(4, 17, 3)
Out[6]:
array([ 4, 7, 10, 13, 16])
In [7]:
type(array1) #ndarray = n차원 배열
Out[7]:
numpy.ndarray
In [8]:
array2 = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
array2
Out[8]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
In [9]:
array1.size
Out[9]:
6
In [10]:
array2.size
Out[10]:
12
In [11]:
array2.shape
Out[11]:
(3, 4)
In [12]:
array1.shape
Out[12]:
(6,)
3-3 인덱싱과 슬라이싱: 1차원 array
In [1]:
import numpy as np
In [2]:
gdp_array = np.array([6610, 7637, 8127, 8885, 10385, 12565, 13483, 12398, 8282, 10672])
# GDP = 어떤 국가의 경제 규모
# 대한민국 1인당 GDP를 년도별로 담은 배열 (1990년도, 1991 ....)
In [3]:
gdp_array[0]
Out[3]:
6610
In [4]:
gdp_array[2]
Out[4]:
8127
In [5]:
gdp_array[-1]
Out[5]:
10672
In [6]:
gdp_array[-2]
Out[6]:
8282
In [7]:
gdp_array[[1, 3, 4]]
Out[7]:
array([ 7637, 8885, 10385])
In [8]:
array1 = np.array([2, 1, 3, 5])
gdp_array[array1]
Out[8]:
array([ 8127, 7637, 8885, 12565])
In [9]:
gdp_array[2:6]
Out[9]:
array([ 8127, 8885, 10385, 12565])
In [10]:
gdp_array[:6]
Out[10]:
array([ 6610, 7637, 8127, 8885, 10385, 12565])
In [11]:
gdp_array[5:]
Out[11]:
array([12565, 13483, 12398, 8282, 10672])
In [12]:
gdp_array[1:8:3]
Out[12]:
array([ 7637, 10385, 12398])
3-4 비트코인 가격 정보 탐색하기 I
3-5 인덱싱과 슬라이싱: 2차원 array
In [1]:
import numpy as np
In [2]:
gdp_array = np.array([
#2000년, 2001년, 2002년, 2003년, 2004년, 2005년 (열)
[12257, 11561, 13165, 14673, 16496, 19403], # 대한민국 (행)
[36169, 34406, 32821, 35387, 38299, 37813], # 일본
[959, 1053, 1149, 1289, 1509, 1753], # 중국
[36335, 37133, 38023, 39496, 41713, 44115] # 미국
])
gdp_array
Out[2]:
array([[12257, 11561, 13165, 14673, 16496, 19403],
[36169, 34406, 32821, 35387, 38299, 37813],
[ 959, 1053, 1149, 1289, 1509, 1753],
[36335, 37133, 38023, 39496, 41713, 44115]])
In [3]:
gdp_array[1] # 1행
Out[3]:
array([36169, 34406, 32821, 35387, 38299, 37813])
In [4]:
gdp_array[1][3] # 1행의 인덱스 3
Out[4]:
35387
In [5]:
gdp_array[1, 3] # 위 방법과 같음
Out[5]:
35387
In [6]:
gdp_array[1:3, 2:5]
# 1행 ~ 2행의 인덱스 2 ~ 4
# 일본, 중국의 2002년 ~ 2004년 까지의 GDP
Out[6]:
array([[32821, 35387, 38299],
[ 1149, 1289, 1509]])
In [7]:
gdp_array[1:3, 2:]
Out[7]:
array([[32821, 35387, 38299, 37813],
[ 1149, 1289, 1509, 1753]])
In [8]:
gdp_array[:3, 2:5]
Out[8]:
array([[13165, 14673, 16496],
[32821, 35387, 38299],
[ 1149, 1289, 1509]])
In [9]:
gdp_array[:, 2:5]
# 모든 행의 2~4의 열
# 한국,일본,중국,미국의 2002년 ~ 2004년 까지의 GDP
Out[9]:
array([[13165, 14673, 16496],
[32821, 35387, 38299],
[ 1149, 1289, 1509],
[38023, 39496, 41713]])
In [10]:
gdp_array[1:3, :]
# 1~2행의 모든 열
# 일본, 중국의 2000년 ~ 2005년까지의 GDP
Out[10]:
array([[36169, 34406, 32821, 35387, 38299, 37813],
[ 959, 1053, 1149, 1289, 1509, 1753]])
3-6 비트코인 가격 정보 탐색하기 II
3-7 불린 인덱싱
In [1]:
import numpy as np
In [2]:
gdp_array = np.array([6610, 7637, 8127, 8885, 10385, 12565, 13403, 12398, 8282, 10672])
In [3]:
gdp_array > 10000
Out[3]:
array([False, False, False, False, True, True, True, True, False,
True])
In [4]:
mask = gdp_array > 10000
gdp_array[mask] # 10000 넘는 값들만 가져옴 (마스킹)
Out[4]:
array([10385, 12565, 13403, 12398, 10672])
In [5]:
gdp_array[gdp_array > 10000] # 굳이 변수에 저장하고 하지 않아도 됨
Out[5]:
array([10385, 12565, 13403, 12398, 10672])
In [6]:
gdp_array > 10000
Out[6]:
array([False, False, False, False, True, True, True, True, False,
True])
In [7]:
gdp_array < 8000
Out[7]:
array([ True, True, False, False, False, False, False, False, False,
False])
In [8]:
(gdp_array > 10000) | (gdp_array < 8000)
Out[8]:
array([ True, True, False, False, True, True, True, True, False,
True])
In [9]:
gdp_array[(gdp_array > 10000) | (gdp_array < 8000)]
Out[9]:
array([ 6610, 7637, 10385, 12565, 13403, 12398, 10672])
In [10]:
gdp_array[(gdp_array <= 10000) & (gdp_array >= 8000)]
Out[10]:
array([8127, 8885, 8282])
3-8 짝수만 추출하기
3-9 NumPy 기본 연산
In [1]:
import numpy as np
In [2]:
gdp_korea_array = np.array([12257, 11561, 13165, 14673, 16496, 19403]) #한국 GDP (달러 기준)
In [3]:
gdp_korea_array.mean() # 평균
Out[3]:
14592.5
In [4]:
gdp_korea_array.sum() # 합
Out[4]:
87555
In [5]:
gdp_korea_array.min() # 최솟값
Out[5]:
11561
In [6]:
gdp_korea_array.max() # 최댓값
Out[6]:
19403
In [7]:
gdp_korea_array * 1200
Out[7]:
array([14708400, 13873200, 15798000, 17607600, 19795200, 23283600])
In [8]:
gdp_korea_array # 계산한 값이 저장되지 않음
Out[8]:
array([12257, 11561, 13165, 14673, 16496, 19403])
In [9]:
gdp_korea_array = gdp_korea_array * 1200 # 환율이 1200원 = 1달러
gdp_korea_array # 저장됨
Out[9]:
array([14708400, 13873200, 15798000, 17607600, 19795200, 23283600])
In [10]:
gdp_korea_array = gdp_korea_array / 1200 # 다시 달러로 변환
gdp_korea_array
Out[10]:
array([12257., 11561., 13165., 14673., 16496., 19403.])
In [11]:
gdp_us_array = np.array([36335, 37133, 38023, 39406, 41713, 44115]) #미국 GDP (달러 기준)
In [12]:
gdp_us_array - gdp_korea_array
Out[12]:
array([24078., 25572., 24858., 24733., 25217., 24712.])
In [13]:
gdp_us_array / gdp_korea_array
Out[13]:
array([2.96442849, 3.21191938, 2.88818838, 2.68561303, 2.52867362,
2.27361748])
3-10 쇼핑몰 매출액 계산하기
'데이터 사이언스 > 인강' 카테고리의 다른 글
[코드잇] 데이터 사이언스 Toolkit 4. pandas (0) | 2024.08.19 |
---|---|
[코드잇] 데이터 사이언스 Toolkit 3. Matplotlib (0) | 2024.08.07 |
[코드잇] 기초 통계와 데이터 시각화 (0) | 2024.08.05 |
[코드잇] 데이터 사이언스 Toolkit 1. Jupyter Notebook (0) | 2024.07.29 |
[코드잇] 데이터 사이언스 오버뷰 (1) | 2024.07.29 |