English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 - 실제 배열 요소를 포함한 버퍼입니다. 일반적으로 배열의 인덱스를 통해 요소를 가져오기 때문에 이 속성을 사용하지 않는 것이 일반적입니다.
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는 현재 세 차원을 가집니다.
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]]
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
>> import numpy as np >>> x array([[0, 1], [2, 3]) >>> x.dtype dtype('int32') >>> type(x.dtype)
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
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
>> 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')