In [741]: queu = np.array([[[0,0],[0,1]]])
In [742]: new_path = np.array([[[0,0],[1,0],[2,0]]])
In [743]: queu
Out[743]:
array([[[0, 0],
[0, 1]]])
In [744]: queu.shape
Out[744]: (1, 2, 2)
In [745]: new_path
Out[745]:
array([[[0, 0],
[1, 0],
[2, 0]]])
In [746]: new_path.shape
Out[746]: (1, 3, 2)
形状が (1,2,2) と (1,3,2) の 2 つの配列を定義しました。これらの形状について戸惑う場合は、基本的なnumpy
紹介の一部を読み直す必要があります。
hstack
、vstack
およびappend
すべての呼び出しconcatenate
。3D 配列でそれらを使用すると、問題が混乱するだけです。
一方のサイズが 2 で、他方のサイズが 3 である 2 番目の軸で結合すると、(1,5,2) 配列が生成されます。(これは と同等ですhstack
)
In [747]: np.concatenate((queu, new_path),axis=1)
Out[747]:
array([[[0, 0],
[0, 1],
[0, 0],
[1, 0],
[2, 0]]])
軸 0 (vstack) で結合しようとすると、次のエラーが発生します。
In [748]: np.concatenate((queu, new_path),axis=0)
....
ValueError: all the input array dimensions except for the concatenation axis must match exactly
連結軸は0ですが、軸1の次元が異なります。したがって、エラー。
ターゲットは有効な numpy 配列ではありません。それらをリストにまとめることができます:
In [759]: alist=[queu[0], new_path[0]]
In [760]: alist
Out[760]:
[array([[0, 0],
[0, 1]]),
array([[0, 0],
[1, 0],
[2, 0]])]
またはオブジェクト dtype 配列 - しかし、それはより高度numpy
です。