python中的快速三角逼近
我使用python进行轨迹比较计算,这需要大量的大圆计算。这些计算需要大量的三角函数,而脚本目前在常规math.atan2等实现中的速度非常慢。是否有任何python库可以执行高效的近似计算?我真的更喜欢效率而不是准确性python中的快速三角逼近,python,performance,trigonometry,atan2,great-circle,Python,Performance,Trigonometry,Atan2,Great Circle,我使用python进行轨迹比较计算,这需要大量的大圆计算。这些计算需要大量的三角函数,而脚本目前在常规math.atan2等实现中的速度非常慢。是否有任何python库可以执行高效的近似计算?我真的更喜欢效率而不是准确性 任何自己实现这一点的指针都是非常受欢迎的。取决于您正在做什么。如果您有矩阵/向量格式的数据,并且希望在许多元素上执行相同的操作,则可以使用numpy data = np.array([...]) sines = np.sin(data) 这将大大加快速度您是否分析了代码以了解
任何自己实现这一点的指针都是非常受欢迎的。取决于您正在做什么。如果您有矩阵/向量格式的数据,并且希望在许多元素上执行相同的操作,则可以使用numpy
data = np.array([...])
sines = np.sin(data)
这将大大加快速度您是否分析了代码以了解瓶颈是什么?这看起来像是一个中弹dark@JBernardo当我从简单的欧几里德计算改为大圆计算时,运行时间几乎从瞬间开始(如果不进行分析,这基本上是瞎猜。另外,大致了解脚本部分的执行时间也非常重要,因此请尝试一下;这是一种常见的方法。使用python中包含的模块
cProfile
,您可以很容易地完成这项工作。也许您可以找到一些有用的东西。如果您想使用trig方法,为什么不使用粗略查找表?计算间隔0-2pi内100个点的(逆)正弦/余弦/正切。然后,对于每个角度mod 2pi,您有一个该角度的所有(逆)三角函数的(粗略)查找表。如果查找不确定,只需计算“实”值(在python+numpy中,我怀疑这会更快……)