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

如何将两个9x9矩阵CSV合并为9x9x2格式numpy文件,解决输出为9x18问题

问题原因

你的代码存在两个核心问题:

  • 仅做了纯文本内容的拼接,没有把CSV文件加载为numpy矩阵做维度层面的合并,所以得到的是行/列拼接的二维结构
  • 输出的是普通文本CSV文件,不是numpy格式的存储文件

修改后完整代码

import os, glob
import numpy as np
from collections import defaultdict

dirs = ['/content/drive/MyDrive/Colab Notebooks/Nuova cartella/mu1/real', '/content/drive/MyDrive/Colab Notebooks/Nuova cartella/mu1/imag']
file_pattrn = r'*.csv'
unique_files = defaultdict(list)

for d in dirs:
  for i in glob.iglob(os.path.join(d, file_pattrn)):
     unique_files[os.path.basename(i)].append(i)

destination = '/content/drive/MyDrive/Colab Notebooks/New_Dataset'
# 目标目录不存在则自动创建
os.makedirs(destination, exist_ok=True)

for unique_filename, copies in unique_files.items():
    # 校验每个文件名匹配到2个待合并的csv文件
    if len(copies) != 2:
        print(f"警告:文件{unique_filename}匹配到{len(copies)}个副本,跳过处理")
        continue
    # 分别加载两个csv为9x9数值矩阵
    arr1 = np.loadtxt(copies[0], delimiter=',')
    arr2 = np.loadtxt(copies[1], delimiter=',')
    # 在第三维度堆叠两个矩阵,得到9x9x2的目标结构
    arr_merged = np.stack([arr1, arr2], axis=2)
    # 生成npy格式存储文件名,替换原csv后缀
    save_name = os.path.splitext(unique_filename)[0] + '.npy'
    save_path = os.path.join(destination, save_name)
    # 保存为numpy二进制文件,完整保留维度信息
    np.save(save_path, arr_merged)

关键修改说明

  1. 新增numpy依赖,用np.loadtxt直接读取CSV内容为数值矩阵,默认逗号分隔符符合CSV格式规范
  2. 使用np.stack指定axis=2参数,在第三个维度堆叠两个9x9矩阵,直接生成预期的9x9x2维度结构
  3. 输出改为numpy标准二进制.npy格式,后续读取时直接调用np.load()即可拿到对应维度的数组
  4. 新增异常校验和目录自动创建逻辑,避免文件匹配异常、目录不存在导致的运行错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:36:08