ㅁ 넘파이 라이브러리
ㅇ list의 형태를 하고있으나 같은 타입의 데이터만 들어갈 수 있다는 차이점
ㅇ 넘파이 생성하기
도구 불러오기
import numpy as np
이후ndarray 생성하기!
array변수명 = np.array(인자값)
1차원 ( [ ] )
2차원 ( [ [ ], [ ] ] )
3차원 = ( [ [ [ ] , [ ] ] , [ [ ] , [ ] ] ] )
ㅇ 특정한 값으로 배열 생성하기
np.zeros()
-->> 배열 안 값 1로 초기화
np.ones()
-->> 배열 안 값 2로 초기화
np.full((행,열).원하는 값)
-->> 배열 안 값 원하는 값으로 초기화
○ ndarray 객체 속성 확인하기
배열명.shape
-->> 배열 크기 (1차원은 데이터 개수, 2차원은 행열 개수)
몇행 몇열의 배열인지 확인
pandas에서도 동일 사용가능
배열명.size
-->> 내부 데이터 전체 개수 확인
배열명.ndim
-->> 몇 차원인지 확인
data명.dtype
: 데이터가 어떤 자료형인지 확인 (int, float 등등)
np.bincount(data명)
: 내부 원소에 대한 빈도수를 확인 ->
pandas에서는 Series명.value_counts()가 같은 기능 (Series 형태에서만 사용가능)
np.unique( )
: 내부의 고유한 원소를 확인하는 함수
return_index = True
를 주면 해당 원소들의 인덱스 번호를 리턴함
return_counts = True
를 주면 해당 원소들의 갯수를 리턴함
즉 np.bincount( )를 한것과 동일한 효과
배열명.dtype
-->> 무슨 타입인지(int등)
○ arange함수로 ndarray배열 생성하기
array배열명 = np.arange(시작값, 종료값+1, 증감값)
array배열명 = np.arange(start = 시작값, stop = 종료값+1, 증감값)
일정범위를 한번에 배열로 생성할 수 있음
○ ndarray 배열 타입
array배열명 = array.reshape(행, 열)
행, 열 인자값에 -1을 넣으면 알아서 호환되는 형태로 만들어줌 (호환안되는 형태는 오류 뜸)
array = np.arange(10)
array 리턴값 : [0 1 2 3 4 5 6 7 8 9]
array_re = array.reshape(2,5)
array_re 리턴값 :
[ [ 0 1 2 3 4 ]
[ 5 6 7 8 9 ] ]
array_re2 = array.reshape(5,2)
array_re2 리턴값 :
[ [0 1]
[2 3]
[4 5]
[6 7]
[8 9] ]
○ ndarray 배열 타입
타입을 지정해서 배열 생성 하기>>
array배열명 .dtype(원하는 타입)
np.array([데이터값], dtype = np.원하는타입)
np.array([1.1, 2.2], dtype = np.int64) --> 결과값이 정수형으로 나옴
배열의 타입 변경하기 >>
array배열명.astype
○ 배열간 연산
배열에 배열을 연산할경우(배열+배열 ...etc) 인덱스의 값끼리 연산이 진행되고
배열에 숫자를 연산할 경우(배열+배열 ...etc) 각 요소에 그 숫자가 연산됨
○ numpy의 인덱싱, 슬라이싱
리스트함수에서는 .append(추가데이터)를 통해 마지막에 데이터추가,
혹은 . append(데이터,추가할 인덱스)를 통해 원하는 위치에 추가는 가능하나
한번에 추가는 불가능했음.
numpy는 범위슬라이싱으로 해당범위에 하나씩 추가가 가능함
:를 써주면 모든 범위를 불러온다는 뜻
○ numpy의 beelean 인덱싱
>> ndarray 인덱스의 [ ] 내에 조건문을 작성해준다
array = np.arange(1, 10)
bool_array = array[ array > 5 ]
bool_array 리턴 값 : [6 7 8 9]
○ 정렬하기
np.sort() : 원 데이터는 유지 / 정렬된 행렬을 리턴함
ndarray.sort() : 원 데이터를 정렬한 채로 리턴함
○ 행열 위치 바꾸기
새array배열명 = np.transepose(바꿀 array배열명)
○ 배열 합치기
새array배열명 = np.concantenate( [arr1, arr2, ...] )
○ NPZ파일로 변환 (Numpy ZIP)
np.savez_compressed(
'?.npz',
X_train = X_train,
X_test = X_test,
y_train = y_train,
y_test = y_test) # 좌측 : 변수명 / 우측 : 실제 만든 데이터