首页 > 解决方案 > 从 4 维 Numpy 数组中获取图像作为 4 维 Numpy 数组

问题描述

我刚刚开始学习Python。我正在使用 Numpy,这是我不明白的事情。

我有一个形状为 (960, 200, 200, 1) 的 Numpy 数组。我用它来存储大小为 200x200x1(200 高 x 200 宽 x 1 通道)的图像。所以,我认为这意味着我有 960 张图像。

现在,我必须获取一张图像来测试我的 CNN 网络,为此,我做到了:

D = ... # My Dataset with shape (960, 2, 200, 200, 1)

features = D[:,0,:] # Shape (960, 200, 200, 1)
labels = D[:,1,:] # Shape (960, 200, 200, 1)

print("D shape: ", D.shape)
print("Features shape: ", features.shape)
print("Labels shape: ", labels.shape)

print(features[0, :].shape) # Shape (200, 200, 1)
print(labels[0,:].shape) # Shape (200, 200, 1)

此代码输出:

D shape:  (960, 2, 200, 200, 1)
Features shape:  (960, 200, 200, 1)
Labels shape:  (960, 200, 200, 1)
(200, 200, 1)
(200, 200, 1)

我想从特征中获取一张图像,从标签中获取一张。我已经尝试了这两个命令,获取和图像具有相同的形状(200, 200, 1)

features[0, :]
features[0]

但我需要得到一个 shape 的图像(1, 200, 200, 1)

我怎样才能获得具有该形状的图像?

也许创建一个 4 维 Numpy 数组,并添加图像。

标签: pythonnumpy

解决方案


A = np.random.random((200,200,3))
A.shape

(200, 200, 3)

您可以使用

B = np.expand_dims(A,0)

接着

B.shape

(1, 200, 200, 3)

推荐阅读