PYTHON/machine_learning

넘파이 ndarray

죠으니 2022. 1. 22. 17:48
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