我试图设计一个函数,基本上计算等长列表的平方差,基于这些列表的组合,通过公式[n(n-1)]/2:
因此,对于我的数据:
arr = np.array([[10, 20, 30, 40], #list_1
[11, 12, 13, 14], #list_2
[22, 23, 25, 27], #list_3
[12, 19, 24, 78]]) #list_4
我想这样做:
final_arr = ((arr[0] - arr[1])**2 +
(arr[0] - arr[2])**2 +
(arr[0] - arr[3])**2 +
(arr[1] - arr[2])**2 +
(arr[1] - arr[3])**2 +
(arr[2] - arr[3])**2)
输出:
list(final_arr) = [371, 260, 616, 9155]
正如您所看到的,它基本上是所有6 ([(4*3)/2] = 6)
列表的组合,即
[(list_1, list_2), (list_1, list_3), (list_1, list_4), (list_2, list_3), (list_2, list_4), (list_3, list_4)]
我正在尝试为包含n
个等长列表的数组构建一个函数
您可以使用itertools.combinations和zip
输出:
使用numpy.apply_along_axis
输出:
相关问题 更多 >
编程相关推荐