English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy 배열 속성

    NumPy 배열 속성 설명 및 예제

NumPy 배열의 차원은 정수(rank)로 불리며, 배열의 차원을 의미하며, 일원 배열의 정수는 1이므로 두 차원 배열의 정수는 2그런 다음 계속해서.
NumPy에서, 각 선형 배열은 축(axis)로 불리며, axis=0은 0 축을 따라 작업을 수행하며, 즉 각 열에 대해 작업을 수행합니다; axis=1를 의미합니다.1축을 통해 각 행에 대해 작업을 수행합니다.
예를 들어, 두 차원 배열은 두 개의 일원 배열로 구성되며, 첫 번째 일원 배열의 각 요소는 또 다른 일원 배열입니다.
따라서 일원 배열은 NumPy에서 축(axis)입니다. 첫 번째 축은 기본 배열로, 두 번째 축은 기본 배열 내의 배열입니다. 축의 수 즉 정수는 배열의 차원입니다.

NumPy 배열에서 중요한 ndarray 객체 속성은 다음과 같습니다.

NumPy는 Python 내장 데이터 타입Python 내장 데이터 타입보다 많이 지원합니다. NumPy 기본 타입의 일부는 다음 표에 나열되어 있습니다.

ndarray.ndim - 정수, 즉 축의 수나 차원의 수.ndarray.shape - 배열의 차원은, 행열이 있는 매트릭스에서는 n 행 m 열입니다.ndarray.size - 배열 요소의 총 개수는 .shape에서 n에 해당합니다.*m의 값.ndarray.dtype - ndarray 객체의 요소 타입.ndarray.itemsize - ndarray 객체의 각 요소의 크기는 바이트 단위로 나타냅니다.ndarray.flags - ndarray 객체의 메모리 정보.ndarray.real - ndarray 요소의 실수부분.ndarray.imag - ndarray 요소의 허수부분.ndarray.data - 실제 배열 요소를 포함한 버퍼입니다. 일반적으로 배열의 인덱스를 통해 요소를 가져오기 때문에 이 속성을 사용하지 않는 것이 일반적입니다.

1ndarray.ndim

ndarray.ndim는 배열의 차원을 반환하며, 정수와 같습니다.

>> import numpy as np
>>> a = np.arange(24)
>>> print(a.ndim) 
1 # a는 현재 하나의 차원을 가집니다.
>>> b = a.reshape(2,4,3)
>>> print(b.ndim)
3 # b는 현재 세 차원을 가집니다.

2ndarray.shape

ndarray.shape는 배열의 차원을 나타내며, 튜플을 반환합니다. 이 튜플의 길이는 차원 수와 일치하며, 이는 ndim 속성(정수)입니다. 예를 들어, 두 차원 배열은 "행 수"와 "열 수"로 표현됩니다.
ndarray.shape 또는 배열 크기를 조정할 수 있습니다.

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

또한, NumPy에서는 reshape 함수를 제공하여 배열 크기를 조정할 수 있습니다. 다음은 구체적인 예입니다:

>> import numpy as np
>>> a = np.array([1,2,3,4,5,6],[4,5,6,7,8,9])
>>> b = a.reshape(6,2)
>>> print(b)
[[1 2]]
 [3 4]]
 [5 6]]
 [4 5]]
 [6 7]]
 [8 9]]

3、ndarray.size

ndarray.size는 배열의 요소 수를 나타냅니다. np.prod(a.shape)과 같습니다.
a.size는 표준의 임의 정밀도 Python 정수를 반환합니다. 다른 동일한 값을 얻는 방법들은(예를 들어, 권장하는 방법 np.prod(a.shape)이나, 이 메서드는 np.int_ 인스턴스를 반환합니다) 다를 수 있으며, 이 값이 고정 크기의 정수 타입에 대한 계산에서 사용될 경우 관련될 수 있습니다.

>> import numpy as np
>>> x = np.zeros((3, 5, 2), dtype=np.complex128)
>>> x.size
30
>>> np.prod(x.shape)
30

4、ndarray.dtype

>> import numpy as np
>>> x
array([[0, 1],
       [2, 3])
>>> x.dtype
dtype('int32')
>>> type(x.dtype)

5、ndarray.itemsize

ndarray.itemsize는 배열 중 각 요소의 크기를 바이트 단위로 반환합니다.
예를 들어, float 타입의 요소 타입이64 의 배열 itemsiz 속성 값은 8(float)64 차지합니다. 64 bits를 차지하며, 각 바이트의 길이는 8따라서 64/8차지합니다. 8 바이트를 차지합니다),예를 들어, complex 타입의 요소 타입이32 의 배열 item 속성은 4(32/8)。

>> import numpy as np
>>> x = np.array([1,2,3,4,5], dtype = np.int8)
>>> print(x.itemsize)
1
>>> y = np.array([1,2,3,4,5], dtype = np.float64)
>>> print(y.itemsize)
8

6、ndarray.flags

ndarray.flags는 ndarray 객체의 메모리 정보를 반환하며 다음 속성을 포함합니다:

C_CONTIGUOUS (C) - 데이터는 단일의 C 스타일의 연속 부분에서 구성되어 있습니다.F_CONTIGUOUS (F) - 데이터는 단일의 Fortran 스타일의 연속 부분에서 구성되어 있습니다.OWNDATA (O) - 배열은 사용하는 메모리를 소유하거나 다른 객체에서 빌려옵니다.WRITEABLE (W) - 데이터 영역이 쓰일 수 있습니다. 이 값을 False로 설정하면 데이터가 읽기 전용입니다.ALIGNED (A) - 데이터와 모든 요소가 모두 하드웨어에 적절히 정렬됩니다.UPDATEIFCOPY (U) - 이 배열은 다른 배열의 복사본이며, 이 배열이 해제될 때, 원본 배열의 내용이 업데이트됩니다.

>> import numpy as np
>> a = np.array([1,2,3,4,5])
>> print(a.flags)
  C_CONTIGUOUS : True
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

7、ndarray.real과 x.imag

>> import numpy as np
>> x = np.sqrt([1+0j, 0+1j])
>> x.real
array([1. , 0.70710678])
>> x.real.dtype
dtype('float64')
>> x.imag
array([0. , 0.70710678])
>> x.imag.dtype
dtype('float64')