前提・実現したいこと
pythonで様々な点から外接円を描写しました.
その外接円の中で最も半径が小さい円の中心点・半径を求めたいです.
発生している問題・エラーメッセージ
print(hyp_list) >>[(array([1741.17881513, 1104.41239808]), 2042.514427317047), (array([18.26888889, 21.44044444]), 21.956230785838162), (array([15.04347826, 19.41304348]), 20.98028825526718), (array([181.16369427, 123.83146497]), 200.87305917047993), (array([1741.5816524 , -280.13928917]), 1741.2641721728157), (array([1741.34381637, 537.30314491]), 1800.3888859851531), (array([ 1751.42386976, -34107.84036074]), 34151.6064504647), (array([20.5 , 21.05]), 21.197936220302203), (array([187.21676301, -8.12543353]), 164.41766304774637), (array([183.63348416, 69.99004525]), 175.21907050389817), (array([ 1638.18147257, -9374.05254089]), 9550.425796339285), (array([ 1697.43989226, -3345.37978452]), 3782.178710166597), (array([ 2052.52236801, 32779.04032173]), 32808.244704911114), (array([20.5, 8.5]), 32.901367752724774), (array([ 136.12365591, -662.1172043 ]), 710.092105941269), (array([ 158.71336761, -267.92673522]), 341.52322502693187), (array([ 2.05000000e+01, -1.51647064e+05]), 151687.0644000551), (array([ 2009.9546199 , 23322.91913471]), 23366.95409612065), (array([ 2017.2034683 , 24933.19903019]), 24973.910593115572), (array([ 20.5, -2142.1]), 2182.120679522781)]
このように現在リストに中心点座標(2次元)と半径を格納しているのですが,半径だけを検索して最小値を求めたいとかんがえています.
該当のソースコード
python
1#外接円の中心・半径を求める関数 2def circumcenter(pts): 3 return (center, radius) 4 5# データ点の生成 6l = [[23,0],[1,35],[3460,1],[30,40],[11,40],[350,15]] 7hyp_list = [] 8 9#すべてのデータ点の組み合わせについて外接円を導出 10for v in itertools.combinations(l, len(l[0])+1): 11 center, radius = circumcenter(v) 12 13 dist_x = np.linalg.norm(l - center, axis=1) 14 15 check = any([i <= radius for i in dist_x]) 16 #すべてのデータが包含される外接円のみをリストに追加 17 if check is True: 18 hyp_list.append(circumcenter(v))
試したこと
print(min(hyp_list[1])) >>ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
多次元と数値のリストなので網羅的にすべての要素を探索することもできません.
よろしくお願いいたします.