ndarray : N 차원 (Dimension) 배열 (Array) 객체
import numpy as np
▶ Numpy 모듈의 array()함수로 생성 → np.array()
▶ 속성, 형태을 알고 싶으면 shape.(shape은 행, 열 단위로 부여되는 것이 아니라 axis 단위로 부여됨) → array.shape
차원을 알고 싶으면 ndim. → array.ndim
▶ 데이터 타입 알고 싶으면 dtype
타입을 변경하고 싶으면 astype()에 변경을 원하는 타입을 인자로 입력
▶ reshape()는 array를 특정 차원 및 형태로 변환합니다. 변환 형태를 함수 인자로 부여하면 된다. → reshape(2, 5)
ndarray의 shape를 변경하는 reshape().
갯수만 맞으면 얼마든지 변형 가능. 변환할 수 없는 shape구조를 입력하면 오류 발생.
▶ reshape()에 -1 인자값을 부여하여 특정 차원으로 고정된 가변적인 ndarray형태 변환
array.reshape(-1,5) → 컬럼 axis 크기는 5에 고정하고 로우 axis크기를 이에 맞춰 자동으로 변환. 2x5 형태로 변환
1차원 array를 2차원으로 또는 2차원 array를 1차원으로 변환 시 사용.
▶ np.zeros((3,2))
[[0. 0.]
[0. 0.]
[0. 0.]]
▶ np.ones((3,2), dtype='int32') #int64 써도 됨. 그냥 용량적은것을 쓴 것
[[1 1]
[1 1]
[1 1]]
□ 팬시 인덱싱(fancy indexing)
▶array와 list는 변환이 쉽다
array([3, 6])
list(array)
[3, 6]
□ 불린 인덱싱(Boolean indexing)
▶ 특정 조건에 해당하는지 여부인 True/False 값 인덱싱 집합을 기반으로 True에 해당하는 인덱스 위치에 있는 array를 반환
☞ 불린 인덱싱의 메커니즘 array[array > 5]
step1) array > 5 불린 조건을 []내에 입력
step2) False 값은 무시하고 true 값에 해당하는 index 값만 저장!!!
step3) 저장된 인덱스 값으로 데이터 조회
▶ array = [1 2 3 4 5 6 7 8 9] type은 numpy.ndarray다
array > 5
[False False False False False True True True True]
[ ] 안에 array > 5 Boolean indexing을 적용
array[array > 5]
array1d > 5 불린 인덱싱 결과 값 : [6 7 8 9]
□ 행렬의 정렬
▶ np.sort( array ) : 객체 자체(array)는 변경되지 않음
내림차순 정렬 → np.sort(array)[::-1]
▶ array.sort() : 객체 자체(array)를 변경함
참고 :
df.drop('컬럼명', index=1) 이렇게 쓰면 원본이 바뀌지 않아 새로운 객체에 저장해서 써야됨
df.drop('컬럼명', index=1, inplace=True) 이렇게 쓰면 원본이 바뀜
▶ org_array = np.array([ 3, 1, 9, 5])
np.sort(org_array)
[1 3 5 9]
np.argsort(org_array) 그 번호의 원래의 위치 인덱스를 알려줌( 9장 추천시스템 할 때 복습 )
argsort를 써서 오름차순으로 정렬하고 인덱스 값을 찾은 것
행렬 정렬 시 원본 행렬의 인덱스: [1 0 3 2]
□ 선형대수 연산-행렬 내적, 전치 행렬
▶ 내적 np.dot(A, B)
▶전치행렬 np.transpose(A)
'PYTHON > machine_learning' 카테고리의 다른 글
선형회귀 _ bike-sharing-demand (0) | 2022.01.30 |
---|---|
머신 러닝 지도 학습 프로세스 (0) | 2022.01.26 |
분류(Classification) (0) | 2022.01.26 |
회귀(Regression) (0) | 2022.01.26 |
판다스 (0) | 2022.01.22 |