Форма массива (shape) — это кортеж целых чисел, который описывает размер массива по каждому измерению.
Для numpy.ndarray shape отвечает на вопрос:
сколько измерений у массива и сколько элементов в каждом из них.
Примеры:
1D массив:
a = np.array([1, 2, 3, 4])
a.shape # (4,)Один измерение, 4 элемента.
2D массив:
b = np.array([[1, 2, 3],
[4, 5, 6]])
b.shape # (2, 3)Две строки и три столбца.
3D массив:
c = np.zeros((2, 3, 4))
c.shape # (2, 3, 4)Два блока, в каждом 3 строки по 4 элемента.
Важно, что:
– длина shape = ndim (число измерений)
– произведение всех чисел в shape = size (общее число элементов)
Форма — это метаданные, а не данные. Изменение формы (если не меняется size) не требует копирования памяти.
Пример:
a = np.arange(6) # shape (6,)
b = a.reshape(2, 3) # shape (2, 3)a и b указывают на один и тот же буфер памяти.
Форма жёстко определяет допустимые операции:
– поэлементные операции требуют совместимых форм
– матричное умножение требует согласованных осей
– broadcasting опирается именно на shape
Практическое понимание:
shape — это не «как массив выглядит», а как интерпретировать линейный участок памяти как многомерную структуру.