相关疑难解决方法(0)

纯Python四叉树实现

所有,

有几个使用Python实现四叉树的例子,但我的问题是,是否有人知道用纯python编写的类,如单个.py文件,我可以轻松地包含在我的项目中?这里列出了三个最受欢迎的软件包这些四树库中的任何一个都不错吗?但由于运行它们所需的所有依赖项,我没有运气使用它们.我真的想要一些重量轻,使用起来相对简单的东西.我想通过传递整个地球的边界来调用脚本并从那里开始工作.myMethod((-180,-90,180,90))

谢谢,亚当

python quadtree

6
推荐指数
1
解决办法
6793
查看次数

这个算法的名称,是否有一个numpy/scipy实现呢?

动机:

我已经看到了这个算法的描述,如果存在标准实现,我宁愿不重新发明轮子.我还了解到,如果有一个scipy/numpy实现,它通常比我在python中自己滚动的任何东西都快得多.

算法描述

我在飞机上有很多分(几百万).从包含所有点的大盒子开始,我想连续将盒子细分为相等的区域子框.细分继续递归,而子框中至少有1,000个点.该算法返回一个树,该树描述细分以及点到树的每个叶节点的映射.

这个算法的名称是什么(比如分而治之?),并且在给定2D numpy点数组时是否有标准的方法?

python algorithm numpy scipy

6
推荐指数
1
解决办法
1909
查看次数

优化零重力2d空间中粒子的重力计算

我已经在python中创建了一个小的粒子可视化.我在没有重力的2D空间中对粒子的运动进行了解释.因为每个粒子基于粒子质量和距离吸引所有其他粒子.

我在pygame中做了一个视觉效果,一切都按计划(用caluclation)工作,但是我需要极大地优化计算.今天,该系统可以以相邻的帧速率计算大约100-150个粒子.我把所有的计算都放在一个单独的线程中,它给了我更多但不是我想要的东西.

我看着scipy和numpy,但因为我不是科学家或数学家,所以我只是感到困惑.看起来我在正确的轨道上,但我不知道怎么做.

我需要在循环中计算所有粒子上的所有吸引力.因为我需要找到是否有任何碰撞,我必须重新做同样的事情.

写下那种代码让我心碎......

Numpy能够使用数组计算数组,但是我还没有找到任何计算数组中所有项目的内容,其中包含来自相同/另一个数组的所有项目.有吗?如果是这样,我可以创建几个数组并计算得更快,并且必须有一个函数将索引从2个数组中获取,其值匹配(Collitiondetect iow)

这是今天的吸引力/ collsion计算:

class Particle:
    def __init__(self):
        self.x = random.randint(10,790)
        self.y = random.randint(10,590)
        self.speedx = 0.0
        self.speedy = 0.0
        self.mass = 4

#Attraction    
for p in Particles:
    for p2 in Particles:
        if p != p2:
            xdiff = P.x - P2.x
            ydiff = P.y - P2.y
            dist = math.sqrt((xdiff**2)+(ydiff**2))
            force = 0.125*(p.mass*p2.mass)/(dist**2)
            acceleration = force / p.mass
            xc = xdiff/dist
            yc = ydiff/dist
            P.speedx -= acceleration * xc
            P.speedy -= acceleration * yc
for p …
Run Code Online (Sandbox Code Playgroud)

python optimization physics numpy

5
推荐指数
2
解决办法
2947
查看次数

标签 统计

python ×3

numpy ×2

algorithm ×1

optimization ×1

physics ×1

quadtree ×1

scipy ×1