1
我正在處理向量的3d數組,並且無法正確地重新整形。 我的尺寸對應於數量如下:將3d數組選擇性地整形爲2d數組
0 =矢量(3)
1 =點(4)
2 =折線(2)
因此,這可以被解釋爲2每條包含4個點的多段線,每個點都有一個向量。我想重塑一個2d矩陣(3,8)。
原始數組:
poly_array = array([[[-0.707, 0.0],
[-0.371, 0.0],
[0.371, 0.0],
[0.707, 0.0]],
[[0.0, -0.707],
[0.0, 0.0],
[0.0, 0.707],
[0.0, 0.0]],
[[0.707, 0.707],
[0.928, 1.0],
[0.928, 0.707],
[0.707, 0.0]]])
,所以如果我在看下令沿第一折線點,我會跑:
for i in range(4):
print poly_array[:,i,0]
或沿第二折線有序的點:
for i in range(4):
print poly_array[:,i,1]
如果我重塑這種方式:
new_dim = shape(poly_array)[1] * shape(poly_array)[2]
new_array = poly_array.reshape(3, new_dim)
但這定購矢量作爲採取一個從每個折線(即,PT0-polyline0,PT0-polyline1,PT1-polyline0,PT1-polyline1等)
In: print new_array[:, 0]
Out: [-0.707 0. 0.707]
In: print new_array[:, 1]
Out: [ 0. -0.707 0.707]
但我想
In: print new_array[:, 1]
Out: [-0.371 0. 0.928]
如何重塑形狀以便在下一條多段線之前通過給定折線對應點(沿軸1)的所有矢量循環?