我有两张单子
available_points = [[2,3], [4,5], [1,2], [6,8], [5,9], [51,35]]
以及
solution = [[3,5], [2,1]]
我试图把available_points
中的一个点,并把它附加到solution
上,对于这个点到solution
中所有点的欧几里德距离之和是最大的。在
所以,我会得到这个
solution = [[3,5], [2,1], [51,35]]
我可以像这样选择最远的两个点,但不确定如何继续。在
import numpy as np
from scipy.spatial.distance import pdist, squareform
available_points = np.array([[2,3], [4,5], [1,2], [6,8], [5,9], [51,35]])
D = squareform(pdist(available_points)
I_row, I_col = np.unravel_index(np.argmax(D), D.shape)
solution = available_points[[I_row, I_col]]
这给了我
solution = array([[1, 2], [51, 35]])
您可以使用max函数在“available_points”列表中查找最大值,然后将“available_points”列表的最大值追加到“solution”列表中! 我还附上了输出的截图!在
因为您标记了
numpy
您可以使用^{} -
相关问题 更多 >
编程相关推荐