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

执行Python脚本时如何跳过数据加载代码行以避免重复加载大文件?

实现方案

核心逻辑是把首次加载生成的numpy数组持久化到本地二进制缓存文件,后续运行脚本时优先读取缓存,不需要再重新解析CSV,速度能提升几十到上百倍。

方法1:使用numpy原生的save/load实现(最推荐,无需额外依赖)

代码修改如下:

import os
from numpy import genfromtxt, load, save

CACHE_PATH = "data_cache.npy"

if os.path.exists(CACHE_PATH):
    # 缓存存在直接读缓存,耗时通常在毫秒级
    data = load(CACHE_PATH)
else:
    # 首次运行无缓存,走原CSV加载逻辑
    data = genfromtxt("images.csv", delimiter=',', skip_header=1)
    # 加载完存缓存,下次直接用
    save(CACHE_PATH, data)

print(data.size)
  • 优势:完全兼容numpy数组格式,读写速度极快,不需要额外安装第三方库
  • 如果后续CSV文件更新了,手动删掉data_cache.npy就会自动重新生成缓存

方法2:使用joblib做缓存(适合超大数组,内存占用更友好)

如果你的数组特别大,joblib的序列化效率比numpy原生更高:

import os
from numpy import genfromtxt
import joblib

CACHE_PATH = "data_cache.joblib"

if os.path.exists(CACHE_PATH):
    data = joblib.load(CACHE_PATH)
else:
    data = genfromtxt("images.csv", delimiter=',', skip_header=1)
    joblib.dump(data, CACHE_PATH)

print(data.size)
  • 注意需要先安装joblib:pip install joblib

交互式场景补充(Jupyter Notebook/Lab)

如果是在Notebook环境下开发,可以把CSV加载的代码单独放在一个单元格,首次运行后,后续修改其他代码不需要重新运行该单元格,内存里的data变量会一直保留,不需要额外写缓存逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:15:08