奇妙な小さな配列を作成するとします。
>>> a = np.array([[[1,2,3],4],[[4,5,6],5]])
>>> a
array([[[1, 2, 3], 4],
[[4, 5, 6], 5]], dtype=object)
次に、最初の列をスライスとして取得します。
>>> b = a[:,0]
>>> b
array([[1, 2, 3], [4, 5, 6]], dtype=object)
>>> b.shape
(2,)
b の形状を (2,3) になるように変更したいとします。
>>> b.reshape((-1,3))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: total size of new array must be unchanged
numpy は b の各配列を配列自体ではなくオブジェクトとして扱っていると思います。問題は、目的のサイズ変更を行う良い方法があるかどうかです。