从如下情况开始(见图):
因此,首先,我们在 x 轴上有一系列点(点之间的距离可以变化,点的数量也可以变化。在示例中,我们有 5 个起点)。我们分几个步骤(在示例中为 3 个步骤)沿 y 执行平移,以获得最终的 y 值(在本例中为 3 个单位)。黄色数字对应于它们的索引。
我的目标是实现以下目标:
换句话说,在翻译后的点之间创建链接。 在实践中,为了简单起见,我想获得这样的最终数组:
final :
[[ 0 6] [ 6 12] [12 18]
[ 1 7] [ 7 13] [13 19]
[ 2 8] [ 8 14] [14 20]
[ 3 9] [ 9 15] [15 21]
[ 4 10] [10 16] [16 22]
[ 5 11] [11 17] [17 23]]
这是我制作的完成这项工作的脚本:
import numpy as np
# u: number of points along the x axis
u = 6
# v: number of points along the y axis
v = 4
def x_links(u,v):
matrice = np.arange(u*v).reshape((v, u))
links =np.array([])
for i in range(u):
a = np.repeat(matrice[:,i],2)[1:-1]
links=np.append(links,a).astype(int)
return links.reshape(int(len(links)/2),2)
example = x_links(u,v)
print("final : \n",example)
我的问题是:
非常感谢。
这应该有效:
matrix = np.arange(u*v).reshape((v,u))
np.array(np.stack((matrix, np.roll(matrix, v-1, axis = 0)), axis=-1))[:-1]
输出:
array([[[ 0, 6],
[ 1, 7],
[ 2, 8],
[ 3, 9],
[ 4, 10],
[ 5, 11]],
[[ 6, 12],
[ 7, 13],
[ 8, 14],
[ 9, 15],
[10, 16],
[11, 17]],
[[12, 18],
[13, 19],
[14, 20],
[15, 21],
[16, 22],
[17, 23]]])