Продвинутое изменение формы - создание трехмерных массивов
Теперь перейдем к более продвинутому изменению формы путем создания трехмерных массивов. Трехмерные массивы по сути представляют собой массивы двумерных массивов и полезны для представления объемов, временных рядов изображений или других сложных структур данных.
Добавьте следующий код в файл numpy_reshape.py
:
import numpy as np
## Create a simple 1D array
original_array = np.arange(24)
print("Original 1D array:")
print(original_array)
print("Shape of the original array:", original_array.shape)
print("-" * 50) ## Separator line
## Reshape into a 3D array with dimensions 2x3x4
## This creates 2 blocks, each with 3 rows and 4 columns
reshaped_3d = np.reshape(original_array, (2, 3, 4))
print("Reshaped 3D array (2x3x4):")
print(reshaped_3d)
print("Shape of the 3D array:", reshaped_3d.shape)
print("Dimensions of the 3D array:", reshaped_3d.ndim)
print("-" * 50) ## Separator line
## Accessing elements in a 3D array
print("First block of the 3D array:")
print(reshaped_3d[0])
print("\nSecond block of the 3D array:")
print(reshaped_3d[1])
print("\nElement at position [1,2,3] (second block, third row, fourth column):")
print(reshaped_3d[1, 2, 3])
Запустите скрипт еще раз:
python3 numpy_reshape.py
Вывод показывает, как одномерный массив из 24 элементов можно преобразовать в трехмерную структуру. Эта структура можно представить как 2 блока, каждый из которых содержит матрицу 3×4.
Понимание трехмерных массивов:
- Первое измерение (2) представляет количество "блоков" или "слоев".
- Второе измерение (3) представляет количество строк в каждом блоке.
- Третье измерение (4) представляет количество столбцов в каждой строке.
Эта структура особенно полезна для обработки изображений (где каждый "блок" может быть цветовым каналом), временных рядов данных (где каждый "блок" может быть временной точкой) или других сценариев, требующих нескольких матриц.