본문 바로가기

NumPy

넘파이_ndarray

ndarray :  N 차원(Dimension) 배열(Array) 객체

Numpy모듈의 array()함수로 생성인자로 주로 파이썬 list / ndarray 입력

 

ndarray형태(Shape)와 차원

-ndarray의 shape는 ndarray,shape 속성으로, 차원은 ndarray.ndim속성으로 알 수 있습니다.

 

ndarray타입(type)

-ndarray내의 데이터값은 숫자 값, 문자열 값, 불 값 등이 모두 가능합니다.

숫자형의 경우 int형, unsigned int형, float형, 그리고 이보다 더 큰 숫자 값이나 정밀도를 위해 complex타입도 제공합니다.

-ndarray내의 데이터 타입은 그 연산의 특성상 같은 데이터 타입만 가능합니다.

즉, 한 개의 ndarray객체에 int와 float가 함께 있을 수 없습니다.

-ndarray 내의 데이터 타입은 ndarray.dtype 으로 확인할 수 있습니다.

 

ndarray타입(type) 변환

변경을 원하는 타입을 astype()에 인자로 입력

대용량 데이터를 ndarray로 만들 때 메모리를 절약하기 위해 주로 사용

0,1,2와 같이 크지 않는 범위의 숫자를 위해서 float형보다는 integer형으로 변환하는 것이 훨씬 메모리를 많이 절약하게 됨

대용량 데이터 다룰 시 메모리 절약을 위해서 형변환을 특히 고려해야 함

 

넘파이 배열 ndarray 초기화, reshape()

ndarray를 편리하게 생성하기 -arange, zeros, ones

특정 크기와 차원을 가진 ndarray를 연속값이나 0 또는 1로 초기화 생성해야 할 경우 arrange(), zeros(), ones() 를 이용해 쉽게 ndarray를 생성할 수 있습니다. 주로 테스트용으로 데이터를 만들거나 대규모의 데이터를 일괄적으로 초기화해야 할 경우에 사용된다.

 

ndarray의 차원과 크기를 변경하는 reshape()

reshape()는 ndarray를 특정 차원 및 형태로 변환합니다. 변환 형태를 함수 인자로 부여하면 됩니다.

array1d -> reshape(-1,1) * 2차원으로 변환하되 칼럼 axis크기가 1로 고정

array2d -> reshape(-1,) *1차원으로 변환

 

넘파이 ndarray 인덱싱

ndarray의 데이터 세트 선택하기 - 인덱싱

슬라이싱 - 연속된 인덱스상의 ndarray를 추출하는 방식

팬시 인덱싱 - 일정한 인덱싱 집합을 리스트 또는 ndarray 형태로 지정해 해당 위치에 있는 ndarray를 반환합니다.

블린 인덱싱 - 특정 조건에 해당하는지 여부인 true / false값 인덱싱 집합을 기반으로 true에 해당하는 인덱스 위치에 있는 ndarray를 반환합니다.

 

 

단일값 추출 - 1차원 ndarray

ndarray는 axis를 기준으로 0부터 시작하는 위치 인덱스값을 가지고 있음. 해당 인덱스 값을 []에 명시하여 단일값을 추출합니다. 마이너스가 인덱스로 사용되면 맨 뒤에서부터 위치를 지정합니다.

 

단일값 추출 - 2차원 ndarray

가로 - axis0

세로 - axis1

 

슬라이싱(Slicing) - 1차원 ndarray

슬라이싱은 :을 이용하여 연속된 값을 선택합니다.

 

팬시 인덱싱 - 1차원 ndarray

팬시 인덱싱은 리스트나 ndarray로 인덱스 집합을 지정하면, 해당 위치의 인덱스에 해당하는 ndarray를 반환하는 인덱싱 방식입니다.

 

불린 인덱싱

불린 인덱싱은 조건 필터링과 검색을 동시에 할 수 있기 때문에 매우 자주 사용되는 인덱싱 방식입니다.

 

 

행렬의 정렬 : sort( )와 argsort( )

행렬의 정렬 : sort( )와 argsort( )

sort() 

np.sort() : 원 행렬은 그대로 유지한 채 원 행렬의 정렬된 행렬을 반환

ndarray.sort()는 원 행렬 자체를 정렬한 형태로 변환하며 반환 값은 None

*모두 기본적으로 오름차순으로 행렬 내 원소를 정렬합니다. 내림차순으로 정렬하기 위해서는 [::-1]을 적용합니다. np.sort[::-1]과 같이 사용하면 됩니다.

 

배열의 정렬 : sort( )와 argsort( )

np. sort(A, axis =0), np. sort(A, axis =1)

 

argsort()

원본 행렬 정렬 시 정렬된 행렬의 원래 인덱스를 필요로 할 때 np.argsort()를 이용합니다. np.argsort()는 정렬 행렬의 원본 행렬 인덱스를 ndarray형으로 반환합니다.

 

선형대수 연산 - 전치행렬

np.transpose(A)

 

 

 

 

'NumPy' 카테고리의 다른 글

numpy를 이용한 행렬 계산  (0) 2021.12.21
numpy, 내적 vs 외적  (0) 2021.12.21