본문 바로가기

프로그래밍 공부/코드프레소 교육

[코드프레소XAI양재허브]AI/ML 기초교육 4일차 (1)

반응형

안녕하세요.

26년차 진로탐색꾼 조녁입니다!

 

패기롭게 3일차까지 가봤지만!! 4일차부터 내용이 너무 많아서(핑계)

이제야 다시 포스팅을 시작합니다!! 

3일차 <AI와 ML을 위해 배워야할 개발언어 : 파이썬(Python)> 기초 강의는 아래 주소 확인해주세요~

jonhyuk0922.tistory.com/5

 

[코드프레소XAI양재허브]AI/ML 기초교육 3일차

안녕하세요. 26년차 진로탐색꾼 조녁입니다! 오늘로 평일의 반이 지났습니다! 각자의 자리에서 학업이든, 취업준비든, 직장인이든, 혹은 가정의 지킴이든 자리를 지켜내고 있는 모두 너무 멋지

jonhyuk0922.tistory.com

 

4일차는 파이썬에서 머신러닝을 할 때 가장 많이 쓰는 라이브러리죠.

Pandas 와 Numpy에 대해서 배워봤습니다. 

 

순서상으로는 Numpy를 기반으로 Pandas를 만든 것이기에 Numpy를 먼저 배우는 것이 맞지만 

그러면 좀 노잼이될 수 있다며 강사님은 Pandas부터 알려주셨어요 ㅋㅋㅋㅋ

 

4일차 내용

1) Pandas 로 DataFrame 다뤄보기

2)Numpy의 내장함수

 

1) Pandas 로 DataFrame 다루기

시작하기 전 알아두면 좋을 기본 개념 : Module < Package < Library < API ---- 이러한 대략적으로 어떤 개념이 더 큰건 지만 알아두자!

 

1-1) Data Structure

: data 는 두가지 형태가 있다. Series 와 DataFrame , 우리는 DataFrame에 대해 주로 다룰 것이니 기본적인 개념만 보고 넘어가자.

 

@ 꿀Tip @ 보통 코딩을 시작할 때, 필요한 라이브러리를 아래와 같이 부르고 시작합니다~!

import pandas as pd  #pandas 를 pd로 불러온다.  as는 alias ==별명/별칭

from pandas import read_csv #pandas(라이브러리) 에 있는 read_csv(패키지)를 불러온다.

 

ㄱ. Series

-Series는 수학적으로 벡터(vector)와 유사하다 (위에서 아래로 떨어지는 1차원 벡터)

 

odd = [1, 3, 5, 7, 9]

print(odd)

>> [1, 3, 5, 7, 9]

 

ㄴ. DataFrame

- DataFrame은 수학적으로 행렬(matrix)와 유사하다

 

numbers = [  [1, 2, 3], [4, 5, 6], [7, 8, 9]

numbers_df = pd.DataFrame(numbers)

>>> 

---- > 여기서 잠깐!! 데이터를 가져오면 가장 먼저 해야할 것은 , 바로 데이터의 타입과 모양을 보는 것입니다.

 

numbers_df.dtypes

>>>                              #type 과 dtype 차이 : dtype 은 안에 있는 데이터의 타입

numbers_df.astype('float')       #astype은 타입을 바꿔준다.  , 'float'은 소수점 붙어있는 상태

 

2) Numpy의 내장함수

import numpy as np              #우선 라이브러리를 불러주고

np.array([10, 20, 30])           

>>> array( [10, 20, 30] )

sample_array = np.array([10,20,30])

sample_array.shape           #데이터의 형태 확인

>>> (3, ) 

sample_array.ndim            

>>> 1

sample_array.dtype          #데이터의 타입 확인

>>> dtype('int64')

def printinfo(arr):

print("shape: {}, dimension: {}, dtype: {}".format(arr.shape, arr.ndim, arr.dtype))   #format 함수 사용하는 방식중하나임

printinfo(sample_array)

>>> shape: (3,), dimension: 1, dtype: int64

 

sample_array=[ [ [1,2,3], [4,5,6] ],            #[ ] 갯수만큼이 차원(dimension)이라고 보면 됨 

                       

                           [ [3,2,1], [6,5,4] ]

                       ]

sample_array = np.array(sample_array)

printinfo(sample_array)

>>> shape: (2, 2, 3), dimension: 3, dtype: int64

 

np.reshape(np.zeros(24), (3,4,2))               #reshape : 데이터의 모양을 바꿔주는데 차원도 바꿔줄 수 있다. ex)  (3,4,2) --> (6,4)

>>>

 

(부록) 다양한 형태의 numpy array 생성 방법

np.zeros(5)

>>> array([0., 0., 0., 0., 0.])

np.full( (2,2), 26)

>>> array([ [26, 26] ,

                   [26, 26] ])

np.eye(2)

>>>  array([ [1., 0.],

                    [0., 1.] ])

np.arange(1, 5 -----> 파이썬의 range와 동일하나, 결과값 형식이 다르다.(array , range)

 

>>> array([1, 2, 3, 4])

np.random.randint(0,100,20)            #0~100 중에 랜덤으로 20개 뽑아준다.

>>> array([30, 19, 77, 34, 47, 54, 48, 31, 67, 59, 76, 75, 48, 25, 3, 63, 14, 54, 55, 23])

 

array = np.linspace(0,10,5)

print(array)

>>> [ 0.  2.5  5.  7.5  10. ]          #np.linspace(a,b,c) 는 a~b까지 c개의 숫자를 동일한 간격으로 나열한 array

 



반응형