我有两个2D的numpy数组,代表三个点之间的x/y距离。我需要将x/y距离作为元组存储在一个单一的数组中。
因此,从:
x_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
y_dists = array([[ 0, -1, -2],
[ 1, 0, -1],
[ 2, 1, 0]])
我需要:
dists = array([[[ 0, 0], [-1, -1], [-2, -2]],
[[ 1, 1], [ 0, 0], [-1, -1]],
[[ 2, 2], [ 1, 1], [ 0, 0]]])
我尝试使用dstack/hstack/vstack/concatenate的各种排列组合,但似乎都不能满足我的要求。由于代码中的实际数组可能非常庞大,因此在Python中遍历元素并手动进行重排不是速度上的选择。
编辑: 最终我得出了这个结果:https://gist.github.com/807656
x_dist
和y_dist
相同只是巧合吗?还有,负距离在你的应用中是什么意思?_dist
是否总是“对称”的,但是上三角部分为负?你预计要处理多少个点?这些数组叠放的目的是什么?元素是否以“最优”顺序进行进一步计算?这只是一些想法,谢谢。 - eat