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

多ROOT文件均衡拆分神经网络训练测试数据的数组合并问题

问题解决方案

核心问题解决:合并多文件训练/测试数据

你当前得到Input_Train形状为(2,)的原因是:将包含两个二维数组的列表直接转为numpy数组时,得到的是数组的数组,而非合并后的单二维数组。需要用numpy的拼接函数将所有子数组纵向合并。

修改代码片段

替换原代码中converting list to numpy array部分的代码:

# 替换原来的转换逻辑,用concatenate纵向拼接所有子数组
Input_Train = np.concatenate(Input_Train, axis=0)
Input_Test = np.concatenate(Input_Test, axis=0)

Output_Train = np.concatenate(Output_Train, axis=0)
Output_Test = np.concatenate(Output_Test, axis=0)

或者用更直观的vstack(效果完全一致):

Input_Train = np.vstack(Input_Train)
Input_Test = np.vstack(Input_Test)

Output_Train = np.vstack(Output_Train)
Output_Test = np.vstack(Output_Test)

处理后Input_Train的形状会变为(2831,6),符合你的需求。


额外代码修正点

  1. 初始化错误:原代码中Input_Train []缺少等号,应修改为Input_Train = []
  2. 标签逻辑错误:原代码将标签的两个维度都设为Ofp[i][0],导致标签变为[0,0]或[1,1],不符合你注释的分类规则。正确的标签生成逻辑如下:
output_Labels = np.zeros((input_features.shape[0], 2))
for i in range(input_features.shape[0]):
    if Ofp[i][0] == 0:
        # 第一个muon正确,对应[0,1]
        output_Labels[i] = [0, 1]
    else:
        # 第二个muon正确,对应[1,0]
        output_Labels[i] = [1, 0]

或者用更高效的向量化写法:

output_Labels = np.zeros((input_features.shape[0], 2))
output_Labels[Ofp.flatten() == 0, 1] = 1
output_Labels[Ofp.flatten() == 1, 0] = 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:40:33