我正试图加快我的代码
这是我的示例代码。(实际代码更复杂
import pandas as pd
import time, math, random
length=10000
x = [random.randint(0,100) for _ in range(length)]
y = [random.randint(0,100) for _ in range(length)]
x_pd = pd.Series(data=x)
y_pd = pd.Series(data=y)
print(x)
print(y)
print(x_pd)
print(y_pd)
distance= 0
distance2= 0
t = time.time()
for k in range(1, len(x)):
distance += math.sqrt((x[k] - x[k-1])**2 + (y[k] - y[k-1])**2)
print("dist from list : %lf"% distance)
print("duration for compute moving distance = ", time.time()-t)
# compute by rolling
t = time.time()
for k in range(1, len(x_pd)):
distance2 += math.sqrt((x_pd[k] - x_pd[k-1])**2 + (y_pd[k] - y_pd[k-1])**2)
print("dist from pd.Series : %lf"% distance2)
print("duration for compute moving distance = ", time.time()-t)
正如你们在上面看到的,我有两个列表(或熊猫系列),它们是X,Y姿势列表。我想计算累计旅行距离
我认为如果长度更大,使用上面的熊猫计算会更慢,因为需要迭代
有没有比我想象的更快或更简单的计算方法? 谢谢大家!
您可以使用另一个包
modin.pandas
,它大约比pandas
快4倍,并且它有一些函数。这个包使用并行处理尝试矢量化的功能:
相关问题 更多 >
编程相关推荐