목록Python Study/NumPy (12)
Studio KimHippo :D
필요패키지 로드 # -*- coding : utf-8 -*- %matplotlib inline import matplotlib.pyplot as plt import seaborn as sns import numpy as np sns.set() rand = np.random.RandomState(42) 데이터생성 # NOTE : 2차원 평면에 임의의 점 10개 추출 x = rand.rand(10, 2) plt.scatter(x[:,0], x[:,1], s=100) 좌표 제곱거리 # NOTE : 각 쌍의 점 사이의 좌표 차이 계산 diff = x[:, np.newaxis, :] - x[np.newaxis, :, :] diff.shape # NOTE : 좌표 차이를 제곱함. sq_diff = diff**2 p..
필요 패키지 로드 # -*- coding : utf-8 -*- %matplotlib inline import matplotlib.pyplot as plt import seaborn as sns import pandas as pd import numpy as np import os # os.chdir('./Python-Practice/Python Practice from Windows/numpy/data') print(os.getcwd()) sns.set() 데이터 로드 및 마스크 생성 data = pd.read_csv('Seattle2014.csv', engine='python') rainfall = data['PRCP'].values inches = rainfall / 254 rainy = (inche..
필요 패키지 로드 %matplotlib inline import matplotlib.pyplot as plt import pandas as pd import numpy as np import seaborn seaborn.set() # NOTE : 플롯 스타일 설정 미국 대통령 키 추출 data = pd.read_csv('president_heights.csv') heights = np.array(data['height(cm)']) Out [1] : array([189, 170, 189, 163, 183, 171, 185, 168, 173, 183, 173, 173, 175, 178, 183, 193, 178, 173, 174, 183, 183, 168, 170, 178, 182, 180, 183, 178..
bool_ : True or False int_ : 기본 정수 타입 (C에서의 long) intc : C에서의 int와 동일 intp : 인덱싱에서 사용하는 정수 int8 : -128 ~ 127 int16 : -32768 ~ 32767 int32 : -2147483648 ~ 2147483647 int64 : -9223372036854775808 ~ -9223372036854775807 uint8 : 부호없는 정수 (0 ~ 255) uint16 : 부호없는 정수 (0 ~ 65535) uint32 : 부호없는 정수 (0 ~ 4294967295) uint64 : 부호없는 정수 (0 ~ 18446744073709551615) float_ : float64의 약칭 flot16 : 반정밀 부동 소수점 (부호비트, ..
# -*- coding : utf-8 -*- import numpy as np # NOTE : NumPy의 구조화된 배열 name = ['Alice', 'Bob', 'Cathy', 'Doug'] age = [25, 45, 37, 19] weight = [55.0, 85.5, 68.0, 61.5] # NOTE : 빈 컨테이너 배열 생성 data = np.zeros(4, dtype = {'names' : ('name', 'age', 'weight'), 'formats' : ('U10', 'i4', 'f8')}) data['name'] = name data['age'] = age data['weight'] = weight data Out [1] : array([('Alice', 25, 55. ), ('Bob'..
# -*- coding : utf-8 -*- import numpy as np # NOTE: 팬시 인덱싱 # 팬시 인덱싱 : 단일 스칼라 대신 인덱스 배열을 반환 # 이로써 복잡한 배열 값의 하위 집합에 매우 빠르게 접근하여 수정가능 rand = np.random.RandomState(42) x = rand.randint(100, size = 10) x # NOTE : 세 개의 다른 요소에 접근하고자 할 때 print([x[3], x[7], x[2]]) # NOTE : 인덱스의 단일 리스트나 배열을 전달 ind = [3, 7, 4] print(x[ind]) # NOTE : 결과의 형상이 대상 배열의 형상이 아니라 인덱스 배열의 형상을 반영 ind = np.array([[3, 7], [4, 5]]) pri..
# -*- coding : utf-8 -*- %matplotlib inline import matplotlib.pyplot as plt import numpy as np # NOTE # 벡터화하는 연산을 위해서는 NumPy의 ufuncs말고 브로드캐스팅 기능이 있다. # 브로드캐스팅은 다른 크기의 배열에 이항 ufuncs를 적용하기 위한 규칙이다. a = np.array([0, 1, 2]) b = np.array([5, 5, 5]) print(a + b) print(a + 5) M = np.ones((3,3)) M + a Out [1] : [5 6 7] [5 6 7] Out [2] : array([[1., 2., 3.], [1., 2., 3.], [1., 2., 3.]]) a2 = np.arange(3)..
from scipy import special import numpy as np # NOTE # NumPy의 배열 연산은 아주 빠르거나 아주 느릴수 있는데, 이 연산을 빠르게 만드는 핵심은 바로 벡터화연산을 사용하는 것이다. # 그것은 일반적으로 NumPy의 Universal Functions(ufuncs)를 통해 구현된다. # NOTE : UFuncs에는 단일 입력값에 동작하는 단항 ufuncs, 두 개의 입력값에 동작하는 이항 ufuncs가 있다. x = np.arange(4) # NOTE : 배열 산술연산 print("x = ", x) print("x+5 = ", x + 5) print("x-5 = ", x - 5) print("x*2 = ", x * 2) print("x/2 = ", x / 2) ..