Python Library Numpy, Pandas
Numpy
-
값 생성
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] a = np.array(data) a
- a.dtype() # 자동으로 형태를 정함
- a = a.astype(np.float32) # a. astype(‘float32) 둘 중 아무거나 하나 : 강제변환
- a[0][1] # 0행 1열
- a[0]
- np.arange(1, 10, 2)
- np.arange(1, 13).reshape(3, 2, 2) # 1~13 ~ shape 3, 2, 2형태로 만들어라 ! 갯수가 딱 맞아야함
- np.nan * 10 #nan은 결측치로 곱하거나 더해도 변하지않음
- a[0][1] = np.nan # 결측치는 integer로 사용 불가 float로 가능
- 연산
- data = np.arange(1, 10).reshape(3, 3)data
- data + data # numpy는 python과 다르게 각행렬이 더해짐 // 파이썬은 이어 붙여짐
- np.dot(data, data) # 행렬의 곱 (=data@data)
- 차원
# 0 차원 : scala a = np.array([1]) a # a.shape # 모양 NONE # a.ndim # 차원 : 0차원
# 1 차원 : vector a = np.array([1, 2, 3, 4, 5]) a # a.shape # 모양 (5,) 5행 none열 # # a.ndim # 차원 : 1차원
# 2 차원 : matrix a = np.array([1, 2, 3], [4, 5, 6]) a # a.shape # 모양 (2, 3) 2행 3열 # a.ndim # 차원 : 0차원
# 3 차원 : tensor 3차원 이상의 다차원 행렬 a = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]]) a # a.shape # 모양 NONE # a.ndim # 차원 : 0차원
- np.ones(12).reshape() #1로 다 채워짐
- np.zeros(12).reshape(2, 3, 2) 0으로 다 채워짐 (=np.zeros([2, 3, 2]))
- np.eye(3) # 3행 3열 단위행렬
- np.empty([2,3]) #비어있는 함수
- np.full((3,4), 1000) 값을 1000으로한 3,4 행렬 생성
- 집계함수
- a[0][0] = 100 # 0,0에 100 값을 대입
- a[0, 1] = 1000 # 0,1에 1000 값을 대입
- np.mean(a) # 평균
- np.median(a) # 중앙값
- np.std(a) # 표준편차
- np.var(a) # 분산
- np.sum(a) # 모든 값 더하기 (!= sum(a) # 위아래 행 더하기)
axis = 0 열, axis = 1 행
Pandas
- 값 생성
- pd.Series(data, index=[‘a’,’b’,’c’,’d’]) # 인덱스 a, b… data에 명시적 인덱스 투입
- a.[‘b’]
- b.loc[‘b’]
- b.iloc[‘b’]
- MultiIndex
- df.T = 행, 열을 바꿈
- df.index =멀티인덱스로 묶어짐
- df.column [[],[]]
- df.iloc[0] = 행
- df.loc[] = 열
- 데이터 사전 분석
- df.info()
- df.head()
- df.tail()
- df.describe()
- df.isnull() 결측치 확인 .sum할 시 총합
-
값의 연결
- 데이터 프레임에 concat(열), append(행) 추가
a = pd.DataFrame(np.arange(1,10).reshape(3,3)) # 데이터 프레임 제작 b = pd.Series(np.arange(10, 40, 10) # 시리즈 제작 pd.concat([a, b], axis=1, ignore_index=True)( # 열 합치기 pd.append(b, ignore_index=True) # 행 합치기 (axis=0) default
- 데이터 프레임에 concat(열), append(행) 추가
댓글남기기