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

如何用Python循环创建三维NumPy数组堆叠CSV训练数据?

解决三维数组堆叠问题

你的问题出在np.vstack的使用上——它会把每个(200,4)的二维数组按行拼接,最终把所有样本堆成一个大的二维数组。要得到(1000,200,4)的三维结构,最直接高效的方式是先把每个处理后的数组存入列表,最后一次性转换为三维数组,具体修改如下:

修改后的代码

import os
import glob
import numpy as np

path = os.getcwd()
csv_files = glob.glob(os.path.join(path, "*.csv"))

# 初始化列表存储数据和标签
data_list = []
label_list = []

for f in csv_files:
    seperator = '_'
    app = os.path.basename(f).split(seperator, 1)[0]
    # 处理单个CSV并加入列表
    processed_data = np.array(preprocess(f))
    data_list.append(processed_data)
    label_list.append(app)

# 转换为三维数组和标签数组
a = np.array(data_list)  # 形状为(1000,200,4)
b = np.array(label_list)

print(a.shape)  # 输出 (1000, 200, 4)
print(b)

关键说明

  • 用列表data_list收集每个(200,4)的数组,避免循环中频繁数组拼接的性能损耗(每次vstack都会重新分配内存)。
  • 最后调用np.array(data_list)时,NumPy会自动将列表中的二维数组堆叠成三维数组,第一个维度对应CSV文件的数量,正好满足你通过a[0]到a[999]访问单个CSV数据的需求。
  • 标签部分同样用列表收集后转数组,比循环中多次np.append更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:30:41