将KdTree对象转储到硬盘以便重用

2024-06-02 04:45:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为某个问题建立一组KD树。但我意识到,我不需要一次又一次地加载文件和构造同一组KD树,如果我设法把它们写到硬盘上,然后再读一遍。在

经过一番搜索,我偶然发现了下面的示例,但不确定它将文件转储到何处。如何将其存储在硬盘中的某个示例位置(C:\my\U文件):

import pickle
import scipy.spatial
tree=scipy.spatial.cKDTree([[1,2,3]])
raw = pickle.dumps(tree)

t2 = pickle.loads(raw)

保存后从该位置重新加载:pickle.load(C:\my_file\raw)

有可能吗?还有什么其他可能的方法吗?在


Tags: 文件importtree示例rawmyscipypickle
1条回答
网友
1楼 · 发布于 2024-06-02 04:45:15

docs开始。在

然后,您将在这一过程中使用以下用法:

with open('my_path/my_file.pickle', 'wb') as f:
    pickle.dump(tree, f)                # pickle.dump != pickle.dumps !

with open('my_path/my_file.pickle', 'rb') as f:
    tree = pickle.load(f)

关于pickle协议,相对路径和绝对路径和co有很多要说的,但是文档是最好的方法!在

(有时当一个对象还没有准备好进行pickle时,您可能会遇到一个问题(同样是python文档)。但就scipy和sklearn而言,酸洗对于最有趣的用例应该是可能的)

相关问题 更多 >