인공지능 개발일지

[머신러닝] Numpy 기본 사용법 총 정리 본문

인공지능/머신러닝

[머신러닝] Numpy 기본 사용법 총 정리

Prcnsi 2021. 10. 8. 19:22
728x90

안녕하세요!! 공부하고 올린다는 게 생각보다 늦어졌네요.

사실 이게 크게 중요한 것 같진 않지만 공부한 김에 중요하다고 생각되는 것들만 간단하게 정리해 보았습니다!

 


Numpy는 머신러닝의 선형대수 라이브러리입니다.

 

0. 시작

Numpy를 쓸 때는 제일 윗줄에 아래의 명령어를 써줍니다.

 

 

1. 자료형

 Numpy는 ndarray를 기본 Datatype으로 합니다!

ndarray는 행렬 자료구조 클래스로 리스트와 출력 형태가 동일합니다.

 

이를 생성하는 방법은 아래와 같습니다.

받을 변수=np.array(객체)

np.array의 인자로 ndarray로 변환을 원하는 객체를 주면 변환된 ndarray가 반환됩니다.

이는 아래와 같은 예제로 확인할 수 있습니다.

ndarray생성

 

 

1.1 자료형 - 변경

다음으로 배열을 변경하고 확인하고 생성하는 기본 명령어를 정리해 봤습니다.

기능 명령어
료형 변경 변수.astype('자료형')
구조 변경 변수.reshape(행,열)로 변경

+구조를 변경할 때(reshape(행, 열)에서 (-1, a) 면 2.a로 변경하고 (a,-1)은 a,2로 변경해준다.

reshape를 쓸 때 중요한 점은 변수=reshape(a,b)에서 기존 요소의 개수 a x b를 한 값이 같아야 한다는 것입니다.

 

변경 예제

 

 

1.2 자료형 - 확인

기능 명령어
자료 확인 1) type(변수)
2) 변수.dtype
구조 확인 변수.shape

+참고로 type과 dtype의 차이는 dtype이 더 자세한 결과를 반환한다.

 

 

1.3 자료형 - 생성

기능 명령어
순차적 배열생성 np.range(n)
0으로 초기화된 배열 생성 np.zeros((행,열),dtype='지정할 자료형')
1초기화된 배열 생성 np.ones((행,열))

 

 

참고로 인자로 주는 axis0/1은 행,열을 말합니다.

  • axis0: 로우,행
  • axis1: 칼럼, 열

 

 

1.4 자료형 - 정렬 관련

차이점 명령어
원본 그대로 + return 값 정렬 np.sort(배열)
원본 정렬 + return 값 X 배열.sort()
정렬된 행렬의 인덱스 반환 np.argsort(배열)

+디폴트는 오름차순으로 정리가 되고 내림차순으로 정리를 원할 시 np.sort(배열)[::-1]로 뒤에 [::-1] 옵션을 추가해주면 됩니다.

 

개인적인 생각으로 np.sort(배열)은 np에서 접근해서 일시적이고 배열. sort()은 직접적으로 접근해서 원본이 바뀌는 것이 아닌가 하는 생각이 듭니다.

 

그리고 argsort는 위 정렬했을 시의 인덱스를 반환합니다.

그래서 np.sort(배열)과 배열. sort()는 배열을 정렬하고 argsort 정렬된 배열의 인덱스를 반환합니다!

 

예를 들어 [3,5,1,7]이란 배열을 정렬하면 [1,3,5,7]이고 argsort는 순차적일 시의 인덱스 [1,2,0,3]을 반환합니다.

 

 

 

2.1 출력 - 인덱싱

먼저 인덱싱은 1차원은 기존에 알던 대로 인덱스로 배열의 값들을 출력하고 2차원은 콤마(,)로 행, 열을 좌표 찍듯이 출력할 수 있습니다.

  • 1차원: 배열[인덱스]
  • 2차원: 배열[행, 열]

예제는 아래와 같습니다.

 

 

2.2 출력 - 슬라이싱

슬라이싱은 범위를 지정해 주는 느낌입니다. 아래와 같은 배열의 뜻은 a+1번째에서 b번째까지 입니다.

배열[a:b]

2차원 배열에서는 a:b로 행을 지정하고 c:d로 열을 지정해서 이들의 교집합을 출력합니다!

 

  • 1차원: 배열[행:열]
  • 2차원: 배열[a:b , c:d] 

예제는 아래와 같습니다.

 

728x90