Проблема в том, что массивы имеют разную длину, поэтому numpy не может сделать из них тензор.
Если вы довольны списком списков и вам не нужен массивный массив, вы можете сделать:
id2 = np.array([[ 34, 1867], [ 83, 184, 63, 50, 47, 71, 41]])
id2.tolist()
и получите: [[34, 1867], [83, 184, 63, 50, 47, 71, 41]]
.
Вам нужен плотный массив NumPy , вам нужно дополнить всю последовательность до одинаковой длины. Вы можете сделать что-то вроде:
id2 = np.array([[ 34, 1867], [ 83, 184, 63, 50, 47, 71, 41]])
idx = np.zeros((len(id2), max(len(s) for s in id2)))
for i, sent_ids in enumerate(id2):
idx[i,:len(sent_ids)] = sent_ids
В этом случае вы получите:
array([[ 34., 1867., 0., 0., 0., 0., 0.],
[ 83., 184., 63., 50., 47., 71., 41.]])