Appia의 IT세상

파이썬[Python] 052 Ndarray 속성 - Numpy005 본문

Python/Python Numpy

파이썬[Python] 052 Ndarray 속성 - Numpy005

Appia 2020. 2. 29. 08:34
반응형

이번 포스팅에서는 Numpy관련된 부분에 대해서 이야기를 드리고자 합니다. 앞서 부분들에서 Ndarray생성하는 부분들에 대해서 이야기를 했습니다. 그럼 이번에는 앞서서 생성한 Ndarray에 대한 속성들에 대해서 이야기를 드리고자 합니다. Numpy에서는 확실히 Ndarray가 중심이기 때문에 반드시 알아 둬야 한다고 생각이 듭니다. 그럼 이번 포스팅에서 다루어질 속성은 다음과 같습니다. 

 

ndarray.shape - 배열 구조에 대해서 명시 

ndarray.ndim - 배열의 dimension, 즉 몇차원인지에 대해서 명시

numpy.itemsize - 배열 각 맴버의 바이트 크기를 리턴

numpy.flags - 배열에 속서에 대한 정보 값 나타냄. (예시 참조) 

 

그럼 하나씩 살펴보도록 하겠습니다. 

 

ndarray.shape

위에서 언급한바와 같이 배열 구조 즉 몇 x 몇 배열인지에 대해서 명시해주는 함수입니다. 그럼 다음 예시를 살펴보도록 하겠습니다. 

1
2
3
import numpy
= numpy.array([[1,2,3],[4,5,6],[7,8,9]])
print(a.shape)
cs

위의 예시를 실행하면 다음과 같은 결과가 나옵니다. 

1
(33)
cs

위에서 보는 바와 같이 형태에 대해서 (3,3) 배열인 것을 명시해줍니다. 

 

ndarray.ndim

ndim은 위의 설명에서와 같이 배열인 몇차원인지에 대해서 명시해주는 함수입니다. 그럼 위에서 ndarray.shape에서 사용한 예시를 그대로 활용해 보겠습니다. 

1
2
3
import numpy
= numpy.array([[1,2,3],[4,5,6]])
print(a.ndim)
cs

위의 결과는 다음과 같이 2가 나올 것입니다. 즉 a란 배열이 2차 배열이기 때문입니다. 

1
2
cs

 

numpy.itemsize

실제 이 부분은 배열의 데이터 사이즈를 입력할 때 쉽게 추측할 수 있습니다. 하지만, 한번 다음예제를 보면서 각 맴버들의 사이즈가 어떻게 되는지 살펴보도록 하겠습니다. 

1
2
3
4
5
import numpy
= numpy.array([1,2,3,4,5], dtype = numpy.int8)
x1 = numpy.array([1,2,3,4,5], dtype = numpy.float32)
print(x.itemsize)
print(x1.itemsize)
cs

위의 결과는 다음과 같이 나옵니다. 

1
2
1
4
cs

8비트는 1바이트이고, 32비트는 4바이트이죠. 이와 같이 결과가 나옵니다. 이제는 가장 

 

numpy.flags

배열에 특정 속성들에 대해서 명시 해줍니다. 주요 다 보지는 않습니다. 하지만, WRITEABLE 같은 경오는 종종 보는 것 같습니다. (예제에서 주석 부분으로 명시 )

1
2
3
import numpy
= numpy.array([1,2,3,4,5]) 
print(x.flags)
cs

위의 예제를 실행하면 다음과 같이 결과가 나옵니다. 

1
2
3
4
5
6
  C_CONTIGUOUS : True    # Data가 C언어 기반의 데이터 세그먼트인지에 대한 확인
  F_CONTIGUOUS : True    # Data가 Fortran언어 기반의 데이터 세그먼트인지에 대한 확인
  OWNDATA : True    #객체가 메모리를 직접 소유하는지 아니면, 다름 객체를 참조하고 있는지 확인
  WRITEABLE : True    #쓸수 있는지 즉, False의 경우, Read-Only
  ALIGNED : True
  UPDATEIFCOPY : Fals    #배열이 다른 배열을 복사한것인지에 대해 확인  
cs

물론 flags의 경우 아직 많이 공부가 필요한 상태입니다. 혹 추가적인 정보들이나 제가 틀린 부분에 대해서 언급 및 정정 부탁드립니다. 긴글 읽어주셔서 감사합니다. 

반응형
Comments