본문 바로가기
Data/머신러닝

[파이썬머신러닝완벽가이드]01.파이썬 기반의 머신러닝과 생태계 이해: 넘파이

by mozi2 2023. 4. 13.
반응형

1. 머신러닝이란?

  애플리케이션을 수정하지 않고, 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭

  다양한 분야에서 머신러닝의 응용이 두드러지고 있으며, 데이터 마이닝, 영상인식 등 급격하게 발전함.

2. 관련 SW 설치 (사용자의 맞게 설치하기)

 - anaconda

- python

-  R 

- visual studio

3. 넘파이

 - ndarray: N 차원(Dimension) 배열(Array) 객체

 - 넘파이의 데이터 타입은 ndarray

 - 넘파이는 다차원의 배열을 쉽게 생성하고 다양한 연산을 할 수 있다

https://url.kr/mjvxrc

1 ndarray 기본

  - 데이터 타입

 : ndarray 데이터 값: 숫자 값, 문자열 값, bool 값 등 모두 가능
 : ndarray내의 데이터 타입은 연산의  특성상 같은 데이터타입만 가능  
    ex) int + float 같은 ndarray 객체에 있을 수  없음
 : 만약 다른 데이터 타입을 갖고 있을 경우, 데이터 크기가 더 큰 타입으로 형변환을 일괄적용
list=[1,2,'test']

array =np.array(list)
print(array,array.dtype)

#결과
['1' '2' 'test'] <U11

- ndarray : arange, zeros, ones

: arrange 파이썬 표준 함수인 range( )와 유사한 기능을 함
: zeros 튜플 형태의 shape 값을 입력하면 모든 값을 0으로 채운다.
: ones 튜플 형태의 shape 값을 입력하면 모든 값을 1로 채운다(zeros 와 반대)

- ndarray : reshape

: ndarray 를 특정 차원 및 형태로 변환
 (1) 변환 형태를 함수 인자로 부여함

(2) 인자에 -1 부여시, axis의 크기는 가변적으로 변동

(3) 1차원, 2차원의 ndarray 변환

2 ndarray 인덱싱

ndarray 내의 일부 데이터 세트, 특정 데이터만을 선택할 수 있도록 하는 인덱싱

(1) 단일 값 추출
 : ndarray는 axis 를 기준으로 0부터 인덱스 값을 갖고 있음 

: 2차원 단일값은 아래의 이미지 참고

(2) 슬라이싱
  ' : '  구분자를 이용해 연속된 값을 선택

  : 2차원 ndarray

(3) 팬시 인덱싱
 : 리스트, ndarray로 인덱스 집합을 지정하면 해당 위치의 인덱스에 해당하는 ndarray를 반환하는 방식
   슬라이싱은 연속된 값, 팬시 인덱싱은 아님

 : 2차원 팬시 인덱싱

(4) 불린 인덱싱
 : 조건 필터링과 검색을 동시에 할 수 있음(자주 사용함)
array1d = np.arange(start=1, stop=10)

array3 = array1d[array1d > 5]
print('array1d > 5 불린 인덱싱 값:', array3)

#결과
array1d > 5 불린 인덱싱 값: [6 7 8 9]

3.3.3 행렬의 정렬 - sort(), argsort()

 np.sort ( ) : 원 행렬은 그대로 유지한 상태로 원 행렬의 정렬된 행렬을 반환

 ndarray.sort ( ) : 원 행렬 자체를 정렬한 형태로 변환함, 반환 값 None

  -> 둘다 기본적으로 오름차순 적용

 (1) argsort( )
 : 원본 행렬 정렬 시 정렬된 행렬의 원래 인덱스를 필요로 할 때 np.argsort( ) 를 이용
  : np.argsort( )는 정렬 행렬의 원본 행렬 인덱스를 ndarray형으로 반환

(2) 선형대수 연산 - 행렬 내적
 행렬의 곱, A 와 B의 내적은 왼쪽 행렬의 행과 오른쪽 행렬의 열의 원소들을 순차적으로 곱한 후,
 그 결과를 모두 더한 값
A = np.array([[1, 2, 3],[4, 5, 6]])
B = np.array([[7, 8],[9, 10],[11, 12]])

dot_product = np.dot(A,B)
print('행렬 내적 결과:\n', dot_product)

#결과
행렬 내적 결과:
 [[ 58  64]
 [139 154]]

(3) 선형대수 연산 -전치 행렬 
 원 행렬에서 행과 열 위치를 교환한 원소로 구성한 행렬
A = np.array([[1, 2],[3, 4]])

transpose_mat = np.transpose(A)
print('A의 전치 행렬:\n', transpose_mat)

#결과
A의 전치 행렬:
 [[1 3]
 [2 4]]​

 

 

 

이미지 출처:출처:https://url.kr/

 

728x90
반응형