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

如何保存耗时生成的NumPy数组,避免重复执行提取代码?

解决方法:保存NumPy数组以复用

核心思路

首次生成tablesSys数组后,将其保存到本地文件;后续只需从文件加载数组,无需重复执行耗时的PDF提取操作。

方法一:使用NumPy原生保存/加载(推荐)

NumPy自带的np.save()和np.load()专门针对NumPy数组优化,效率高且使用简单。

1. 首次生成并保存数组

在现有代码后添加保存逻辑:

import numpy as np
import camelot as cam

# 原PDF提取代码(仅需执行一次)
tablesSys = cam.read_pdf("840Dsl_sysvar_lists_man_0122_de-DE_wichtig.pdf",
                         pages = "667-795", 
                         process_threads = 100000, 
                         line_scale = 100, 
                         strip_text ='.\n'
                        ) 
tablesSys = np.array(tablesSys)

# 保存数组到本地文件
np.save("tablesSys.npy", tablesSys)

2. 后续直接加载数组

替换原PDF提取代码,直接加载保存好的数组:

import numpy as np

# 直接从文件加载数组,无需再跑PDF提取
tablesSys = np.load("tablesSys.npy")

方法二:使用Pickle保存(支持任意Python对象)

如果需要保存包含数组的复杂对象,可使用Python标准库pickle:

1. 首次保存

import pickle

# 生成数组后执行保存
with open("tablesSys.pkl", "wb") as f:
    pickle.dump(tablesSys, f)

2. 后续加载

import pickle

with open("tablesSys.pkl", "rb") as f:
    tablesSys = pickle.load(f)

方法三:使用Joblib(适合超大数组)

若数组体积较大,joblib的压缩效率更优:

# 安装joblib(首次使用需执行)
# !pip install joblib

import joblib

# 保存
joblib.dump(tablesSys, "tablesSys.joblib")

# 加载
tablesSys = joblib.load("tablesSys.joblib")

自动化判断(可选)

添加文件存在判断,实现“自动检查-无文件则生成并保存,有文件则直接加载”:

import numpy as np
import camelot as cam
import os

save_path = "tablesSys.npy"

if os.path.exists(save_path):
    # 文件存在,直接加载
    tablesSys = np.load(save_path)
else:
    # 文件不存在,生成并保存
    tablesSys = cam.read_pdf("840Dsl_sysvar_lists_man_0122_de-DE_wichtig.pdf",
                             pages = "667-795", 
                             process_threads = 100000, 
                             line_scale = 100, 
                             strip_text ='.\n'
                            ) 
    tablesSys = np.array(tablesSys)
    np.save(save_path, tablesSys)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:25:35