问题描述
在https://analyst.plus/match/demo的启发下,我试图通过Python找出足球(足球)比赛中的情况,在这些情况下,通过在每帧上建立距离矩阵,球员与队友的位置相似团队,然后使用算法查找相似之处。我将主队和客队分开,并将主队的(x,y)位置存储在数组locs_home_arr
中。阵列中三个主球员(x,y)位置的示例,如下所示:
[[ 955 -2079]
[ 955 -2079]
[ 955 -2079]
...
[ 947 2880]
[ 948 2878]
[ 947 2878]]
[[ 1792 -1019]
[ 1790 -1018]
[ 1789 -1018]
...
[ -349 2108]
[ -346 2106]
[ -344 2103]]
[[ 929 2400]
[ 928 2398]
[ 926 2394]
...
[ 234 -1294]
[ 239 -1298]
[ 242 -1301]]
第一帧的行locs_home_single_frame = locs_home_arr[:,0]
是每个玩家(x,y)位置的2D数组(零是替代物-可能会进行优化):
[[ 955 -2079]
[ 1792 -1019]
[ 929 2400]
[ 1845 1190]
[ 4603 5]
[ 2098 72]
[ 586 -642]
[ 8 -935]
[ 103 1105]
[ 1143 -4]
[ 612 727]
[ 0 0]
[ 0 0]
[ 0 0]
[ 0 0]
[ 0 0]]
每个球员的(x,y)位置共有141173帧,在这里我试图通过使用SciPy的距离矩阵来找到与队友的欧几里得距离,将每一帧转换为距离矩阵。在第一帧上使用该函数的示例:
distmatrix = spatial.distance.cdist(locs_home_arr[:,0],locs_home_arr[:,'euclidean')
此处以前3名玩家为例:
[[ 0. 1350.61800669 4479.07546264 3387.98775086 4201.3045593
2435.82634849 1483.62057144 1485.1077402 3296.02184459 2083.49922006
2826.88609604 2287.85183087 2287.85183087 2287.85183087 2287.85183087
2287.85183087]
[1350.61800669 0. 3526.23453559 2209.63571658 2991.70469799
1133.10061336 1263.55253156 1785.97648361 2713.68697532 1204.75142664
2107.34809654 2061.46185994 2061.46185994 2061.46185994 2061.46185994
2061.46185994]
[4479.07546264 3526.23453559 0. 1517.6152345 4385.6927617
2605.02303253 3061.27636779 3459.83612329 1536.0016276 2413.50616324
1702.76774693 2573.52695731 2573.52695731 2573.52695731 2573.52695731
2573.52695731]
我的问题:我如何遍历球员(x,y)位置的每一帧,并以最佳方式为每一帧创建距离矩阵?我尝试了for循环的不同变体,但是没有任何运气。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)