将字典转换为多维数组



我有一个字典,它存储了4个类的彩色图像数据。每个图像为256*256*3。我的字典有四个关键字,分别叫飞机、鸟、狗和猫。字典中的每个键都有50个尺寸为256*256*3的数组(每个类的50个图像作为3D数组,总共200个图像(。我想把这个数据结构转换成200*3*256*256形状的数组,它从字典键中提取了标签。我如何才能实现这一最简单的方法?我尝试了numpy整形,但没有成功。

所以我假设你的数据设置看起来像这样(显然是真实数据而不是随机数据(:

classes = ["plane", "bird", "dog", "cat"]
images = {
k: [np.random.uniform(size=(256, 256, 3))
for _ in range(50)]
for k in classes
}

我们可以做的是:

X = np.concatenate([images[k] for k in classes], axis=0)
y = np.concatenate([[i] * len(images[k]) for i, k in enumerate(classes)])

这给了你想要的,我相信:

>>> X.shape
(200, 256, 256, 3)
>>> y.shape
(200,)

最新更新