Атрибут shape
Атрибут shape класса ndarray возвращает кортеж,
содержащий размеры массива по каждому измерению. Количество
элементов в кортеже равно рангу массива (количеству осей).
Атрибут доступен как для чтения, так и для записи: присвоение
нового кортежа изменяет форму массива, при этом общее число
элементов должно оставаться неизменным.
Синтаксис
arr.shape
Пример
Давайте создадим одномерный массив и выведем его форму:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr.shape)
Результат выполнения кода:
(5,)
Кортеж (5,) означает, что массив имеет одну ось
с пятью элементами.
Пример
Рассмотрим двумерный массив:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)
Результат выполнения кода:
(2, 3)
Здесь кортеж (2, 3) означает две строки и три столбца.
Пример
Атрибут shape можно использовать для изменения
формы массива. Например, превратим одномерный массив
в двумерный:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
arr.shape = (2, 3)
print(arr)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Обратите внимание, что общее количество элементов (6) осталось неизменным. При изменении формы данные не копируются.
Пример
Если попытаться присвоить форму с другим количеством элементов, возникнет ошибка:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
try:
arr.shape = (2, 4)
except ValueError as e:
print(e)
Результат выполнения кода:
"cannot reshape array of size 6 into shape (2,4)"