Python Numpy
-
Python Pandas(2. 누락된 데이터 처리하기 .)Python/Python 2020. 2. 6. 14:27
누락된 데이터를 처리하는방법 일단 누락된 데이터를 왜 처리하는지 부터 설명한다. 현실 세계의 데이터는 깔끔하지않거나 일부 누락된 것 들이 많이 존재한다 그래서 이러한 기법을 사용한다. import numpy as np import pandas as pd # 임의에 1차원 배열 에다가 누락된 값을 넣는다 vals1 = np.array([1,None , 3,4]) vals1 for dtype in ['object' , int]: print('dtype =' , dtype) %timeit np.arange(1E6, dtype=dtype).sum() print() #배열에서 파이썬 객체를(object) 사용하는 것은 None 값을 가진 배열에서 sum() 이나 min() #같은 집계연산을 하면 일반적으로 오류가..
-
Python NumPy (8. NumPy 최대 최소 값 찾기)Python/Python 2020. 1. 22. 15:06
import numpy as np big_array = np.random.random(1000000) # 배열의 최대값 최소값 찾기 np.min(big_array) , np.max(big_array) M = np.random.random((4,4)) print(M) #2차원 배열의 모든값을 더 해줌 M.sum() #각 열의 최소값을 찾을 때 M.min(axis=0) CSV로 미국 역대 대통령의 키들을 가지고 누가 몇 번째인지 평균 신장은 무엇인지 하는 것을 해보겟다. import pandas as pd data = pd.read_csv('C:\/president_heights.csv') heights = np.array(data['height(cm)']) print(heights) CSV 파일에 있는 대..
-
Python NumPy(7. Sum 과 np.sum 차이 )Python/Python 2020. 1. 21. 14:19
import numpy as np #배열의 값의 합 구하기 L = np.random.random(100) sum(L) np.sum(L) 두 개의 코드는 같은 값을 출력한다 그렇다면 아래의 np.sum(L)은 뭐하러 더 귀찮게 쓰는것인가? 그이유는 간단하다 컴파일에 시간에 차이가 있기 때문이다. big_array = np.random.rand(10000000) %timeit sum(big_array) %timeit np.sum(big_array) 이 코드는 랜덤한 배열을 더하는 것이다 한가지는 기본 산술연산자 sum 과 하는 numpy 라이브러리에 있는 np.sum 함수다. 이 둘에 실행결과는 Sum 도 오래걸린편은 아니지만 np.sum이 월등 하게 빠른편을 보여준다 . Python 데이터 사이언스 분야에..
-
Python NumPy(6. NumPy ufuncs연산)Python/Python 2020. 1. 21. 14:04
파이썬은 동적인 언어이기 때문에 타입이 유연하다 이는 효율적인 머신 코드로 컴파일될 수 없다는 뜻이다. 파이썬은 수많은 작은 연산이 반복되는 상황에서 확연히 느리다. 이러한 연산 속도를 더 빠르게 하기 위해서 필요한것이 바로 ufuncs 연산이다. #Numpy ufuncs는 파이썬 기본 산술연산자를 사용하기에 자연스럽게 사용할 수 있다. x = np.arange(4) print('x =' , x) print('x+5 =' , x+5) print('x-5 =' , x-5 ) print('x*2 =' , x*2) print('x/2 =' , x/2) print('x//2 =' , x//2) #배열안에 인자값에 연산한것을 확인할 수 있다. #음수를 만드는 단항 ufuncs와 지수 연산자 ** , 나머지 연산자..
-
Python Numpy ( 5. 배열 연결 및 분할)Python/Python 2020. 1. 20. 19:05
배열 연결 Numpy 에서는 주로 np.concatenate , np.vstack , np.hstack 루틴을 이용해 두 배열을 결합하거나 연결한다 여기서 보다시피 np.concatenate 는 튜플이나 배열의 리스트를 첫 번째 인수로 취한다. #배열 연결 #Numpy에서는 주로 np.concatenate , np.vstack np.hstack 루틴을 이용해 두 배열을 결합하거나한다. x= np.array([1,2,3]) y= np.array([3,2,1]) np.concatenate([x,y]) # 3개 이상도 가능하다 z = [99,999,9999] print(np.concatenate([x,y,z])) grid = np.array([[1,2,3] , [4,5,6]]) # 첫 번째 축을 따라 연결 n..
-
Python Numpy (4. Numpy 배열 인덱싱)Python/Python 2020. 1. 20. 18:53
import numpy as np np.random.seed(0) #재현 가능성을 위한 시드 값 x1 = np.random.randint(10,size=6) # 1차원 배열 x2 = np.random.randint(10,size=(3,4)) # 3x4 2차원 배열 x3 = np.random.randint(10,size=(3,4,5)) # 3x4x5 3차원 배열 각 배열은 속성으로 ndim(차원의 개수) , shape(각 차원의 크기) , size ( 전체 배열 크기)를 가지고있다. #각 배열은 속성으로 ndim(차원의 갯수 ) , shape(각 차원의 크기 ) , size(전체 배열의 크기) 를 가지고있다 print('x3 ndim: ' ,x3.ndim) print('x3 shape : ' ,x3.sha..
-
Python NumPy 모듈 (1. Numpy와 List의 차이 )Python/Python 2020. 1. 20. 18:04
파이선에서 인메모리 데이터를 효과적으로 적재하고 저장하고 가공하는 기법 (Numpy) 라이브러리 데이터세트는 광범위한 원천으로부터 문서나 이미지 , 사운드클립 , 수치 측정 값 등 거의 모든 것을 아우르는 매우 다양한 형식으로 들어올 수 있다. 이렇게 명백한 다양성에도 불구하고 모든 데이터를 근본적으로 숫자 배열로 간주하는것이 도움이 될 것이다. 데이터를 분석할 수 있게 만드는 첫 번째 단계는 데이터를 숫자 배열로 반환하는것이다. 숫자 배열을 다루기 위해 제공하는 전문 도구인 NumPy 패키지 이다. 파이썬 데이터 타입 이해하기 파이썬에 있는 list 는 동적인 타입으로 편리하게 작동한다 그러나 편리하게 작동하는 만큼 쉽게 단점을 보여준다. 장점은 list 는 동적으로 간단하게 배열안에 자료형 들을 여러..