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

如何将单个CSV中空白行分隔的不同数据块分别读取为独立np数组

方法1:迭代式读取(适合大文件,内存占用极低)

借助Python标准库itertools.groupby按空行分组,直接把分组后的行迭代器传给np.loadtxt,不需要手动解析数值,效率远高于纯Python逐行判断的实现:

import numpy as np
from itertools import groupby

result = []
with open("test_case_11x5.txt", "r") as f:
    # 按行是否为空分组
    for is_empty, line_iter in groupby(f, key=lambda line: line.strip() == ""):
        if not is_empty:
            # 非空行组直接传入loadtxt读取为数组
            result.append(np.loadtxt(line_iter))

该方法全程是流式处理,不需要加载整个文件到内存,哪怕是GB级的大文件也能正常运行,处理速度和原生np.loadtxt单文件读取基本一致。


方法2:全量读取拆分(适合小文件,写法更简洁)

如果文件体积不大,可以一次性读取全部内容后按空行拆分,代码更短:

import numpy as np

with open("test_case_11x5.txt", "r") as f:
    # 按空行拆分数据块
    blocks = [blk.strip() for blk in f.read().split("\n\n") if blk.strip()]

result = [np.loadtxt(blk.splitlines()) for blk in blocks]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:27:00