typing
не имеет к этому никакого отношения. Все массивы имеют значение dtype
, даже если на дисплее не отображается.
Воссоздание вашего списка с дисплея:
In [428]: alist = [np.array([ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ]), np.array([ 0.1675, -0.268,
...: -0.139, 0.195 ])]
In [429]: alist
Out[429]:
[array([ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ]),
array([ 0.1675, -0.268 , -0.139 , 0.195 ])]
Как показывают несколько комментариев, np.array
, примененный к списку, создает двумерный массив:
In [430]: np.array(alist)
Out[430]:
array([[ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ],
[ 0.1675 , -0.268 , -0.139 , 0.195 ]])
np.stack
делает то же самое.
In [431]: np.stack(alist)
Out[431]:
array([[ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ],
[ 0.1675 , -0.268 , -0.139 , 0.195 ]])
Иногда люди начинают с массива объектов типа dtype. В этом случае stack
работает, когда np.array
не работает.
Но если массивы в списке отличаются по форме, то ни один из них не будет работать.
In [432]: alist = [np.array([ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ]), np.array([ 0.1675, -0.268,
...: -0.139])] # remove an element
In [433]: np.array(alist)
Out[433]:
array([array([ 0.02741675, -0.23331268, -0.04920139, 0.2501195 ]),
array([ 0.1675, -0.268 , -0.139 ])], dtype=object)
In [434]: np.stack(alist)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-434-724d9c1d0554> in <module>
----> 1 np.stack(alist)
/usr/local/lib/python3.6/dist-packages/numpy/core/shape_base.py in stack(arrays, axis, out)
414 shapes = {arr.shape for arr in arrays}
415 if len(shapes) != 1:
--> 416 raise ValueError('all input arrays must have the same shape')
417
418 result_ndim = arrays[0].ndim + 1
ValueError: all input arrays must have the same shape