図1に示すように、2個のテスト・アルゴリズム
#1 コーディング:UTF-8 インポート時間 インポートnumba インポートNP AS numpyの 「」 ' numba加速要約を使用して、 計算のフロートダブル他のタイプ(1)、intなどの数値計算 numbaアクセラレーションを使用して、速度が文字列型のデータができません、加速することができます使用numbaが加速しました。 (2)数値計算:numba小さなループを使用しないで、ループ100は、上記numbaアクセラレーションを使用することができるよりも大きいです。 (3)、小さなサイクルは、とても遅い毛髪の時間のかかるプロセスを切り替えるとき。 (4)1秒を超える計算時間を使用することができる、1秒以内のサイクル時間より少ない計算に他のnumba加速の使用を算出します。 '' ' @ Numba.jit DEF TEST1(LS): N- = LEN(LS) DT = np.zeros((N、N-)) のために I、項目で列挙(LS) のために J、ヴァルで =(+ヴァル列挙(LS) : DT [I、J] アイテム) リターンのDT @のnumba.njit DEFプリム(G、START = 0): N = LEN(G) kは = 開始 MST = [] VIS = np.zeros(N) VISを[0] = 1 一方、 K <N-1 : minw = np.inf U、V = 0,0 のための私に:レンジ(N) のための J でレンジ(N): もし VIS [I] == 1 及び VIS [J] = = 0: もし G [I、J] < minw: minw = G [I、J] U、V = I、J VIS [V] = 1 、K = K + 1 MST.append([U、V、minw]。コピー()) 戻りMST 場合 __name__ == " __main__ " : LS =リスト(フロート(I)のために I における範囲(30000 )) N = 500 、G = np.random.randint(100,1000 、(N、N) ) ST = time.time() #再= TEST1(LS) RE1 = プリム(G) プリント(RE1 [-10 :]) プリント(time.time() - ST)