だから私は関数を持っています:
def connection(n,m,r):
is_connected = ((x[n]-x[m])**2 + (y[n]-y[m])**2)**0.5
if is_connected < 2*r:
return n + " " + "connects with" + " " + m
else:
return "no connection"
これは基本的に、2 つの円 (インデックス n と m に対応する座標を持つ) が接続されているかどうかを確認します。n および m パラメータは、numpy.random 配列から取得されるデータセット x および y のインデックスを参照します。
array([[ 0.31730234, 0.73662906],
[ 0.54488759, 0.09462212],
[ 0.07500703, 0.36148366],
[ 0.33200281, 0.04550565],
[ 0.3420866 , 0.9425797 ],
[ 0.36115391, 0.16670599],
[ 0.95586938, 0.52599398],
[ 0.13707665, 0.6574444 ],
[ 0.77766138, 0.56875582],
[ 0.79618595, 0.7139309 ]])
配列は基本的に 10 セットの座標なので、x と y の 2 つのリストを作成しました (x は配列の最初の列、y は 2 番目の列です)。m と n は、これらのリストのインデックスです。したがって、n と m は配列内のインデックスに対応していますが、どうすればよいかわかりません。
私が今行っていることは、インデックスを手動で入力して、この配列内の 2 つの円が接続されているかどうかを確認することです。より効率的な方法でこれを行うことができる -for ループはありますか?