일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 워게임
- C언어
- abex crackme
- 컴퓨터 구조
- 넘파이
- webhacking.kr
- sql injection
- php
- 알고리즘
- 웹해킹
- 리버싱 워게임
- html
- 어셈블리어
- 회귀 수식
- MySQL
- 웹
- 리버싱 문제
- 백준 알고리즘
- 자바스크립트
- 인공지능
- writeup
- 해킹
- 리버싱
- CodeEngn
- 리액트
- 백준
- 리눅스
- 보안
- 머신러닝
- webhacking
- Today
- Total
인공지능 개발일지
[머신러닝] Numpy 기본 사용법 총 정리 본문
안녕하세요!! 공부하고 올린다는 게 생각보다 늦어졌네요.
사실 이게 크게 중요한 것 같진 않지만 공부한 김에 중요하다고 생각되는 것들만 간단하게 정리해 보았습니다!
Numpy는 머신러닝의 선형대수 라이브러리입니다.
0. 시작
Numpy를 쓸 때는 제일 윗줄에 아래의 명령어를 써줍니다.
1. 자료형
Numpy는 ndarray를 기본 Datatype으로 합니다!
ndarray는 행렬 자료구조 클래스로 리스트와 출력 형태가 동일합니다.
이를 생성하는 방법은 아래와 같습니다.
받을 변수=np.array(객체)
np.array의 인자로 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]
예제는 아래와 같습니다.
'인공지능 > 머신러닝' 카테고리의 다른 글
[기계학습] 레이블의 분포도를 유지하여 데이터 분리와 교차검증 Stratified K-Fold,cross_val_score (0) | 2022.05.22 |
---|---|
[머신러닝] 로지스틱 회귀(Logistic Regression)으로 분류 실습 - 생선 종류 예측 (0) | 2022.05.07 |
[머신러닝] 회귀의 이해(선형 회귀, 다항 회귀, 다중 회귀)와 시그모이드 함수의 역할 (0) | 2022.05.06 |
[머신러닝] fit(X,y)에서 변수 X,y의 의미와 지도학습의 흐름 및 머신러닝 용어정리 (data feature,data class) (2) | 2022.04.10 |
[머신러닝] AI 공부 방황기 겸 정리 (0) | 2021.08.23 |