You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于二维矩阵构建保留空间信息的ML训练数据集?

保留空间信息的机器学习数据集构建方法

我有以下两个二维矩阵:

import numpy as np

matrix_1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix_2 = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])

对应的标签为:

labels = np.array([0, 1])

我要基于这些数据构建用于ML模型训练的数据集:

  • 试过给每个矩阵单独存成CSV,但没法用多份CSV训练模型;
  • 试过扁平化矩阵,但会丢失空间信息。

希望得到的训练数据格式如下(保留矩阵的二维结构):

x_train = np.array([[[1, 2, 3],[4, 5, 6],[7, 8, 9]],[[10, 11, 12],[13, 14, 15],[16, 17, 18]]])  
y_train = np.array(["cat", "dog"])

求除了扁平化之外的其他可行方法。


可行解决方案

1. 直接构建三维数组(最直接)

直接将多个二维矩阵堆叠成三维数组作为特征集,标签对应匹配即可:

import numpy as np

matrix_1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix_2 = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])

# 构建x_train:三维数组,shape为(样本数, 行数, 列数)
x_train = np.array([matrix_1, matrix_2])
# 构建y_train:可以直接映射标签,或者用原数字标签
y_train = np.array(["cat", "dog"])
# 如果用原数字标签:y_train = labels

这种方式完全保留矩阵的空间结构,适合卷积神经网络(CNN)等需要空间信息的模型。

2. 用Numpy的stack函数批量处理

如果矩阵数量较多,用np.stack更高效:

# 假设你有一个存储所有矩阵的列表
matrices = [matrix_1, matrix_2]
x_train = np.stack(matrices, axis=0)  # axis=0表示在样本维度堆叠
y_train = np.array(["cat", "dog"])

3. 保存为Numpy二进制文件(方便后续复用)

如果需要把数据集保存下来,避免每次重新构建,可存成.npy或.npz文件:

# 保存单个数组
np.save("x_train.npy", x_train)
np.save("y_train.npy", y_train)

# 或者打包成一个.npz文件
np.savez("dataset.npz", x_train=x_train, y_train=y_train)

# 加载时
data = np.load("dataset.npz")
x_train = data["x_train"]
y_train = data["y_train"]

这种格式完全保留数组的维度信息,加载速度远快于CSV,适合存储多维数据。

4. 使用Pandas存储(兼容表格工具)

如果需要同时兼容表格类工具查看,可把每个矩阵的行作为嵌套列表存入Pandas的列,标签单独一列:

import pandas as pd

df = pd.DataFrame({
    "features": [matrix_1.tolist(), matrix_2.tolist()],
    "label": ["cat", "dog"]
})

# 保存为CSV(加载时需要把嵌套列表转回numpy数组)
df.to_csv("dataset.csv", index=False)

# 加载时恢复
df_loaded = pd.read_csv("dataset.csv")
x_train = np.array(df_loaded["features"].apply(eval).tolist())
y_train = df_loaded["label"].values

注意:这种方式适合小数据集,大数据集用Numpy二进制更高效。


内容的提问来源于stack exchange,提问作者Totoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:28:27