foo
является массивом объекта dtype, потому что размер подсписков различается:
In [10]: foo = np.array([[[1,2,3],[1,2]],[[3,4,5],[3,4]]])
In [11]: foo
Out[11]:
array([[list([1, 2, 3]), list([1, 2])],
[list([3, 4, 5]), list([3, 4])]], dtype=object)
In [12]: foo.shape
Out[12]: (2, 2)
Поскольку это (2,2), вы можете выбрать столбец, но он все равно будет объектом dtype:
In [13]: foo[:,0]
Out[13]: array([list([1, 2, 3]), list([3, 4, 5])], dtype=object)
Но некоторые версии concatenate
могут объединять эти списки в новый массив.stack
хорошо работает здесь:
In [14]: np.stack(foo[:,0])
Out[14]:
array([[1, 2, 3],
[3, 4, 5]])
np.vstack
также будет работать.np.array
не изменяет объект dtype.