我正在处理两个大型数据集(三维点的坐标)。第一个数据集有大约一百万个点(Data1),而第二个数据集有五千万个点(Data2)。我需要通过比较两个数据集来进行对计数和范围查询。目前,我正在使用scipy cKDTree(我读到它很快)。在
from scipy.spatial import cKDTree
KDTree_Data1 = cKDTree(Data1)
KDTree_Data2 = cKDTree(Data2)
print "KDTree created"
Data2_Indx = KDTree_Data1.query_ball_tree(KDTree_Data2, r=170, p=2.0, eps=0)
print "Something"
当我为测试用例(数据1和数据2的小尺寸)运行这个脚本时,它运行得很好,但是当我为实际情况运行它时(数据1为~1 mil,数据2为~50 mil),我得到以下输出(和错误消息)。在
^{pr2}$我怀疑查询树比我的计算机需要更多的内存。我使用的是一款16 GB(1867 MHz DDR3)内存和3.1 GHz(Intel Core i7)处理器的Mac电脑。在
有人能提出一种替代cKDTree(或query_ball_tree)的方法吗?它需要更少的内存?如果有任何有用的答复,我将不胜感激。在
目前没有回答
相关问题 更多 >
编程相关推荐