我正在研究一个机器学习数据集,其中csv中的每一行代表一个尺寸为28*28的图像:
row[0]=image label
row[1:]=information about pixel in the image
我需要循环通过CSV文件创建2 np数组,1包含标签和第二个包含图像。图像数组必须为3d numpy数组。
csv_reader = csv.reader(file, delimiter=',')
images = np.empty((0,28,28),dtype=np.float64)
labels = np.empty((0,1),dtype=np.float64)
for row in csv_reader:
image= np.reshape(row[1:],(28,28))
resize_image =image[np.newaxis,:]
images = np.append(images,resize_image,axis=0)
label = np.reshape(row[0],(1))
resize_label = label[np.newaxis,:]
labels = np.append(labels,resize_label,axis=0)
return images, labels
我觉得这是一个非常缓慢和不优化的方法,有没有更有效的方法来完成任务?
这个问题的一个解决方案示例可以在这里找到:数字识别器- CNN
data_train = pd.read_csv(file)
x_train = data_train.drop(labels=["label"], axis=1)
y_train = data_train["label"]
x_train = x_train.values.reshape(-1, 28, 28, 1)
y_train = to_categorical(y_train, num_classes=10)