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

Объект Ndarray NumPy

Основы NumPy Ndarray

Одна из самых важных особенностей NumPy - это объект N-мерного массива ndarray, который является集合ом данных одного типа, индексация элементов которого начинается с нуля.
Объект ndarray предназначен для хранения многомерных массивов из элементов одного типа.
Каждый элемент ndarray в памяти имеет одинаковую область хранения.
ndarray внутренне состоит из следующего:

Понтер к данным (в памяти или в блоке данных файла, маппинга памяти).Тип данных или dtype, который описывает клетки с фиксированным размером значений в массиве.Туплятор, представляющий форму массива (shape), который указывает на размер каждого измерения.Туплятор шага (stride), в котором целые числа указывают на количество байт, которые необходимо "перешагнуть", чтобы перейти к следующему элементу текущего измерения.

Основной объект 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. Также 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)

Создание ndarray возможно только с помощью функции array из NumPy:

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.]