NumPy优于常规Python列表有什么优势?
我有大约100个金融市场系列,我打算创建一个100x100x100 = 100万个单元的立方体阵列.我将使用每个y和z对每个x进行回归(3变量),以使用标准错误填充数组.
我听说过,对于"大型矩阵",出于性能和可伸缩性的原因,我应该使用NumPy而不是Python列表.事实是,我知道Python列表,它们似乎对我有用.
如果我搬到NumPy,会有什么好处?
如果我有1000个系列(即立方体中有10亿个浮点单元)怎么办?
我有一组要为其构建KD树的点.一段时间后,我想定期为这个KDTree添加几点.在scipy实现中有没有办法做到这一点
我有大型2D阵列,带有未分类(X,Y)点,我需要知道哪些点彼此非常接近(最近邻查找).我已经使用cKDTree和query_ball_tree成功获得了大约500,000(X,Y)点的数组.但是,当我为超过1,000,000个点的数据集尝试相同的算法时,query_ball_tree会导致MemoryError.
我使用64位Windows和16Gb内部存储器,并尝试了32位和64位版本的Python和扩展模块(scipy和numpy).
def Construct_SearchTree(AllXyPoints):
KDsearch = cKDTree(AllXyPoints)
return KDsearch.query_ball_tree(KDsearch, Maxdist)
Run Code Online (Sandbox Code Playgroud)
我的问题:
1)有没有人知道cKDTree/query_ball_tree的替代品消耗更少的内存?在这种情况下,内存使用速度不太重要.
2)我希望从32位切换到64位python和扩展可以解决MemoryError问题.可能是什么原因呢?
感谢您的帮助和建议.