如何从MNIST的训练数据的0-9数字中各选择 前100个,组成1000个数字的新训练集 trainX1k和对应的trainY1k
时间: 2023-03-23 11:01:06 浏览: 239
可以使用Python中的NumPy和Pandas库来处理MNIST数据集。下面是一个实现方法:
```python
import numpy as np
import pandas as pd
from tensorflow.keras.datasets import mnist
# 加载MNIST数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# 构造DataFrame来处理数据
df = pd.DataFrame({'X': X_train.reshape(-1, 784), 'y': y_train})
# 每个数字最多选择100个样本
samples_per_digit = 100
# 遍历0-9的数字,选择前100个样本
selected_rows = []
for digit in range(10):
rows = df[df['y'] == digit].index[:samples_per_digit]
selected_rows.extend(rows)
# 根据选择的行构造新的训练集trainX1k和trainY1k
trainX1k = X_train[selected_rows]
trainY1k = y_train[selected_rows]
# 打乱顺序
shuffled_indices = np.random.permutation(len(trainY1k))
trainX1k = trainX1k[shuffled_indices]
trainY1k = trainY1k[shuffled_indices]
```
这个方法将MNIST数据集转化为一个包含X和y的DataFrame,然后根据每个数字选择前100个样本。最后打乱顺序,得到了新的训练集trainX1k和trainY1k。
阅读全文