Свойства массива shape
и ndim
. Форма - это размер массива в каждом измерении. image.ndim
- это просто сокращение для len(image.shape)
. Другое связанное количество - image.size
, что составляет np.prod(image.shape)
. В numpy размеры называются «осями» и начинаются с нуля. Таким образом, первый индекс в массиве соответствует оси 0, второй - оси 1 и т. Д.
Какое измерение является "каналом", полностью зависит от интерпретации. Как правило, это будет последнее измерение, но я также видел его как первое. В более общем смысле измерения обычно соответствуют некоторым полезным координатам в вашем массиве. Помните, что не все массивы являются изображениями. Данные могут быть абсолютно произвольными и будут основаны на вашем сценарии использования.
Ваш пример немного сбивает с толку, поскольку image.ndim == image.shape[0] == image.shape[1]
. Вот пример массива, содержащего несколько RGB-изображений одинакового размера:
images = np.random.randint(255, size=(5, 7, 7, 3), dtype=np.uint8)
Мы можем интерпретировать ось 0 как индекс изображения, ось 1 как ширину, ось 2 как высота и ось 3 как цветовой канал. В этом случае у нас есть пять изображений размером 7х7, по три цветовых канала в каждом. Если каналы R, G, B, то images[3, 0, 0, 2]
- это синий компонент верхнего левого пикселя в четвертом изображении.