Pandas Pandas는 ndarray(NumPy)를 기본 자료구조로 이용한다. 이 ndarray를 가지고 Pandas는 두개의 또 다른 자료 구조를 이용한다. Series,DataFrame 1) Series 동일한 데이터 타입의 복수개의 성분으로 구성되는 자료구조 -> 1차원 2) DataFrame 엑셀/ Database의 Table과 같은 개념 여러개의 Series로 구성되어 있다 -> 2차원 Pandas 설치 후 진행 : conda install pandas Pandas의 Series import numpy as np # ndarray arr = np.array([-1, 4, 5, 99], dtype=np.float64) print(arr) # pandas의 Series s = pd.Series(..
문제 : https://moon9342.github.io/data-science-lecture-python-numpy-exercise 기상 관측 이래, 서울의 최고 기온이 가장 높았던 날은 언제였고, 몇도인가요? 데이터 분석을 진행할 때 데이터의 전처리가 진행되어야 한다. 결측치 처리와 이상치 처리를 해야 한다. 결측치 처리 raw 데이터는 문제의 소지가 있을 수 있다. 데이터가 없는 경우를 의미 삭제/ 평균,최고, 최저 등으로 값 대체 이상치 처리 데이터는 존재하는데 정상범위가 아닌 데이터 삭제하거나 대체 for문을 쓰는 것보다 성능이 빠른 풀이 import numpy as np seoul2 = np.loadtxt("./data/seoul.csv", dtype=np.object, delimiter=',..
ndarray의 원소 추가와 삭제 1) concatenate() 원소 추가 ndarray에 row(s) 혹은 column(s)을 추가 하기 위한 함수 result = np.concatenate(어떤것을 서로 붙일지, 행으로 붙일지 열로 붙일지) axis=0: 행방향/ 가로방향 Python list의 원소 추가 : append() ndarray의 원소 추가 append()가 있긴 하지만 잘 쓰진 않는다. concatenate()를 더 많이 쓴다. 하나의 ndarray와 다른 ndarray 연결 arr에 new_row vector를 하단에 붙인다. 결과적으로 3 x 3 matrix 생성 import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 nd..
ndarray 정렬 Numpy array는 axis를 기준으로 정렬하는 sort() 함수 제공 만약, axis를 지정하지 않으면 -1값으로 지정 => 마지막 axis np.sort() : 원본은 변하지 않고, 정렬된 결과 ndarray를 리턴 arr.sort() : 원본을 정렬, return은 None 1) 1차원 ndarray 정렬 import numpy as np arr = np.arange(10) np.random.shuffle(arr) print(np.sort(arr)) # 오름차순 정렬 (default) # ndarray는 특수한 indexing 제공 => 역순으로 정렬하기 위한 index print(np.sort(arr)[::1]) # 한칸씩 움직이기 # [0 1 2 3 4 5 6 7 8 9]..
집계함수 import numpy as np arr = np.arange(1, 7, 1).reshape(2, 3).copy() print(arr) # [[1 2 3] # [4 5 6]] print(arr.sum()) # 21 print(np.sum(arr)) # 21 print(np.cumsum(arr)) # 누적합 => [ 1 3 6 10 15 21] print(np.mean(arr)) # 3.5 print(np.max(arr)) # 6 print(np.min(arr)) # 1 print(np.argmax(arr)) # 최대값의 인덱스/ 순번 => 5 print(np.argmin(arr)) # 최소값의 인덱스/ 순번 => 0 print(np.std(arr)) # 표준편차 1.707 print(np.exp..
Transpose 전치행렬 원본행렬의 행은 열로, 열은 행으로 바꾼 행렬을 의미한다. 전치행렬의 표현은 윗첨자로 T를 이용한다. import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 ndarray t_arr = arr.T # 3 x 2 ndaray # [[1 2 3] [[1 4] # [4 5 6]] => [2 5] # [3 6]] # 2 x 3 -> 3 x 2 print(arr) print(t_arr) 원본 행렬의 값을 바꾸면 전치 행렬도 바뀐다. arr[0][0] = 100 print(arr) # [[100 2 3] # [ 4 5 6]] print(t_arr) # [[100 4] # [ 2 5] # [ 3 6]] 벡터(= 1차원 ndarr..
ndarray의 사칙연산, 행렬곱, Broadcasting 사칙연산 : +, -, *, / 행렬곱 : dot product Broadcasting은 사칙연산에서만 일어나고, dot product에서는 일어나지 않는다! 1. 행렬 덧셈 python의 list에서, + 연산자는 concatenation!! ndarray에서 + 연산자는 vector, matrix 연산 ndarray의 사칙연산의 기본 전제는 shape이 같아야 연산이 성립 import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 ndarray arr2 = np.array([[7, 8, 9], [10, 11, 12]]) # 2 x 3 ndarray print(arr1) print(a..
Numpy05 - ndarray의 Indexing & Slicing 1. 1차원 ndarray import numpy as np arr = np.arange(10, 20, 1) print(arr) # [10 11 12 13 14 15 16 17 18 19] # enumerate() 함수 for (idx, tmp) in enumerate(arr): print("idx : {}, data : {}".format(idx, tmp)) # idx : 0, data : 10 # idx : 1, data : 11 # idx : 2, data : 12 # .. arr = np.arange(10, 20, 1) print(arr[3]) # 13 print(arr[1:4]) # [11 12 13] print(arr[:-1]..