In [163]: s_ = np.array([[3], [1]])
In [164]: s_
Out[164]:
array([[3],
[1]])
In [165]: s_.shape
Out[165]: (2, 1)
Множество способов превратить это в (2,) массив формы:
In [166]: s_.ravel()
Out[166]: array([3, 1])
In [167]: s_.squeeze()
Out[167]: array([3, 1])
In [168]: s_[:,0]
Out[168]: array([3, 1])
In [170]: s_.reshape(2)
Out[170]: array([3, 1])
In [171]: s_.reshape(-1)
Out[171]: array([3, 1])
Что касается работы со списком из них, [s_, s_, s_]
, вы можете просто использовать понимание списка создать новый список, каждый из которых будет изменен одним из перечисленных выше методов.
Или, если они имеют одинаковую форму, их можно объединить в один массив.
Присоединить их к новое ведущее измерение:
In [172]: np.array([s_,s_,s_])
Out[172]:
array([[[3],
[1]],
[[3],
[1]],
[[3],
[1]]])
In [173]: _.shape
Out[173]: (3, 2, 1) # could reshape to (3,2)
Присоедините их к существующему измерению размера 1:
In [175]: np.concatenate([s_,s_,s_], axis=1)
Out[175]:
array([[3, 3, 3],
[1, 1, 1]])
In [176]: _.shape
Out[176]: (2, 3)
транспонируйте это:
In [177]: np.concatenate([s_,s_,s_], axis=1).T
Out[177]:
array([[3, 1],
[3, 1],
[3, 1]])