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

NumPy Ndarray 객체

NumPy Ndarray 객체의 기본 지식

NumPy의 가장 중요한 특징 중 하나는 N차원 배열 객체 ndarray입니다. 이는 0부터 시작하는 인덱스로 요소를 인덱싱하는 동일한 유형의 데이터 집합입니다.
ndarray 객체는 동일한 유형의 요소를 저장하는 다차원 배열입니다.
ndarray 中的每个元素在内存中都有相同存储大小的区域。
ndarray 内部由以下内容组成:

一个指向数据(内存或内存映射文件中的一块数据)的指针。数据类型或 dtype,描述在数组中的固定大小值的格子。一个表示数组形状(shape)的元组,表示各维度大小的元组。一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。在NumPy维度中称为 轴 。

例如,3D空间中的点的坐标[1, 2, 1]具有一个轴。该轴有3个元素,所以我们说它的长度为3。在下面所示的实例中,数组有2个轴。第一轴的长度为2,第二轴的长度为3。

[[ 1., 0., 0.],
[ 0., 1. 2.]]

NumPy的数组类被调用ndarray。这里需要注意的是numpy.array这与标准Python库类不同array.array,array.array只处理一维数组并提供较少的功能。ndarray对象有更重要的属性,具体如下:

ndarray.ndim - 数组的轴(维度)的个数。在Python世界中,维度的数量被称为rank。ndarray.shape - 数组的维度。这是一个整数的元组,表示每个维度中数组的大小。shape 元组的长度就是rank或维度的个数 ndim。ndarray.size - 数组元素的总数。这等于 shape 的元素的乘积。ndarray.dtype - 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。ndarray.itemsize - 数组中每个元素的字节大小。例如,元素为 float64 类型的数组的 itemsize 为8(=64/8)。ndarray.data - 该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素。

我们来看一个具体的实例

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
       [ 5, 6, 7, 8, 9],
       [10, 11, 12, 13, 14]]
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
int64'
>>> a.itemsize
8
>>> a.size
15
>>> type(a)

NumPy의 array 함수를 호출하여 ndarray를 생성하면 됩니다:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
파라미터 설명:

object - 배열 또는 중첩된 시퀀스dtype - 배열 요소 데이터 타입, 선택가능copy - 객체가 복사가 필요한지 여부, 선택가능order - 배열 생성 스타일, C는 행 방향, F는 열 방향, A는 임의 방향(기본)subok - 기본적으로 기본 클래스 타입과 일치하는 배열을 반환ndmin - 생성된 배열의 최소 차원을 지정

Ndarray 인스턴스

아래는 ndarray의 사용법을 더 잘 이해하기 위해 몇 가지 예제를 통해 설명합니다.

1、일차원 배열
>>> import numpy as np
>>> a = np.array([1,2,3,4,5)
>>> print(a)
[1 2 3 4 5]
2、다차원 배열
>>> import numpy as np
>>> a = np.array([1,2,3],[4,5,6],[7,8,9]]
>>> print(a)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
3、배열 차원 지정
>>> import numpy as np
>>> a = np.array([1,2,3,4,5], ndmin = 3)
>>> print(a)
[[[1 2 3 4 5]]
4、배열 요소 타입 지정
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6], dtype = float32)
>>> print(a)
[1. 2. 3. 4. 5. 6.]