start = time.time()
import csv
f = open('Speed_Test.csv','r+')
coordReader = csv.reader(f, delimiter = ',')
count = -1
successful_trip = 0
trips = 0
for line in coordReader:
successful_single = 0
count += 1
R = interval*0.30
if count == 0:
continue
if 26 < float(line[0]) < 48.7537144 and 26 < float(line[2]) < 48.7537144 and -124.6521017 < float(line[1]) < -68 and -124.6521017 < float(line[3]) < -68:
y2,x2,y1,x1 = convertCoordinates(float(line[0]),float(line[1]),float(line[2]),float(line[3]))
coords_line,interval = main(y1,x1,y2,x2)
for item in coords_line:
loop_count = 0
r = 0
min_dist = 10000
for i in range(len(df)):
dist = math.sqrt((item[1]-df.iloc[i,0])**2 + (item[0]-df.iloc[i,1])**2)
if dist < R:
loop_count += 1
if dist < min_dist:
min_dist = dist
r = i
if loop_count != 0:
successful_single += 1
df.iloc[r,2] += 1
trips += 1
if successful_single == (len(coords_line)):
successful_trip += 1
end = time.time()
print('Percent Successful:',successful_trip/trips)
print((end - start))
私はこのコードを持っていて、それは非常に時間がかかるでしょうが、私が望むだけの速さで実行することはできません。プロセスをスピードアップするために私ができるバットから誰かが見えるものはありますか?どんな提案も大歓迎です。Pythonコード時間の高速化
本質的に2つの緯度および経度座標を読み込み、それらをデカルト座標に変更し、原点座標から目的の座標までの距離に応じて特定の間隔の長さのすべての座標を通過します。これは、300 +の座標位置を持つデータフレーム(df)が存在するにもかかわらず、トリップ間隔の各1つに対してチェックし、1つが半径R内にあるかどうかを確認し、最短で格納します。
を必要とするかもしれないが、私が代わりに[コードレビューの姉妹サイトでこれを掲示することをお勧めしたい示唆](https://codereview.stackexchange.com/)。 – ShadowRanger