将KD-Tree对象倾倒到硬盘以进行重复使用



我正在为某些问题构建一组KD-Trees。但是我意识到,如果我设法以某种方式写入然后将它们重新读取并再次阅读它们,则我无需一次又一次地加载文件并构造相同的KD-Trees集。

搜索一点后,我点击了下面的示例,但不确定它在哪里转储文件。如何将其存储在硬盘上到某个示例位置(C: my_file(:

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

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

甚至有可能吗?还有哪些其他可能的方法?

从文档开始。

然后,您将在此过程中点击此用法:

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)

关于泡菜杂项,相对与绝对路径和co。有很多话要说,但是文档是去那里的方式!

(有时您可能会在对象准备好被腌制时遇到问题(再次:Python-docs(。但是,对于Scipy和Sklearn而言,对于大多数有趣的用例,应该可能腌制(

(

最新更新