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

如何将含33696行数据的大型npy文件分割为18个小型npy文件?

分割大型NPY文件为多个小型NPY文件

NPY是NumPy的二进制存储格式,不能直接用文本分割代码处理,必须借助NumPy来加载并分片数据。以下是两种实用的实现方案:

方法一:一次性加载后分片保存

适合内存足够容纳整个大文件的场景:

import numpy as np

# 加载目标大型NPY文件
large_data = np.load('large_file.npy')

# 校验数据行数是否符合预期
assert large_data.shape[0] == 33696, "数据行数与预期不符,请检查原文件"

# 定义每个小文件的行数
chunk_size = 1872

# 循环分割并保存分片
for chunk_idx in range(18):
    start = chunk_idx * chunk_size
    end = start + chunk_size
    chunk_data = large_data[start:end]
    np.save(f'split_file_{chunk_idx+1}.npy', chunk_data)

方法二:内存映射分块加载(内存不足时使用)

如果大文件体积过大,无法一次性载入内存,可以用内存映射模式加载,避免占用过多内存资源:

import numpy as np

chunk_size = 1872
total_chunks = 18

# 以只读内存映射方式打开文件,无需一次性载入全部数据
with np.load('large_file.npy', mmap_mode='r') as large_data:
    for chunk_idx in range(total_chunks):
        start = chunk_idx * chunk_size
        end = start + chunk_size
        # 读取当前分片并转为可写入的数组
        chunk = large_data[start:end].copy()
        np.save(f'split_file_{chunk_idx+1}.npy', chunk)

注意事项

  • 替换代码中的large_file.npy为你的实际文件名,输出的小文件名可按需修改。
  • 运行前确保已安装NumPy库,可通过命令pip install numpy完成安装。
  • 由于33696 = 18 × 1872,数据刚好能被完全分割,不会产生剩余数据块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:35:38