如何将 MNIST 数字分类到每个 class 标签中?

How to sort MNIST digits into each class label?

我正在使用 (x_train, y_train), (x_test, y_test) = mnist.load_data() 从 Keras 导入 mnist 数据集,我想做的是按每个样本的相应数字对每个样本进行排序。我正在想象一些简单的方法来做到这一点,但我似乎无法找到数据的任何标签属性。有什么简单的方法可以做到这一点?

y_trainy_test 分别是包含与 x_train 和 x_test 中每个图像关联的标签的向量。这会告诉你每张图片中显示的数字。因此,只需获取将使用 np.argsort 对这些向量进行排序的索引,然后使用这些索引对相应的矩阵进行重新排序。

import numpy as np

idx = np.argsort(y_train)
x_train_sorted = x_train[idx]
y_train_sorted = y_train[idx]

所以如果你想要一个特定数字的所有图像,你可以简单地通过索引相应的矩阵来获取它们

x_train_zeros = x_train[y_train == 0]
x_train_ones = x_train[y_train == 1]
# and so on...

请注意,在这种情况下,您不需要对数据进行预排序。