たとえば、単純な2Dの場合の問題点を説明する下の画像を見てください。各点のラベル(N)と座標(x、y)は既知である。私は球状領域にあるすべての点を終えてください
私の実際の問題が3Dである赤色の円内にあるすべてのポイントラベルを見つける必要があるとの点は一様に7.25 M点の座標を含んで
サンプル入力ファイルを配布されていませんこちらはpoint fileです。
私はそれは〜10分かかり、単一の検索のためのコード
import numpy as np
C = [50,50,50]
R = 20
centroid = np.loadtxt('centroid') #chk the file attached
def dist(x,y): return sum([(xi-yi)**2 for xi, yi in zip(x,y)])
elabels=[i+1 for i in range(len(centroid)) if dist(C,centroid[i])<=R**2]
の以下の部分を試してみました。それをより速くするための提案はありますか?
おかげで、 Prithivi
Pythonのブール値のインデックスを使用することができますすべての行をマシンコードにそれが打ち上げだたびに変換されていることを意味スクリプト言語です。 C、Java、Pascal、...のようなプログラミング言語は、実行前に完全にコンパイルされ、はるかに高速化されます。したがって、スクリプト以外のプログラミング言語を使用することをお勧めします。 – Dominique