Такое поведение связано с тем, что оба (или, если быть точным, все) элементы не находятся в одном и том же измерении.
Учтите:
l1 = np.array([[1], [1, 2]])
print(type(l1[0]))
l2 = np.array([[1, 2], [1, 2]])
print(type(l2[0]))
Выводит (сейчас ) ожидается
<class 'list'>
<class 'numpy.ndarray'>
Для того, чтобы получить numpy.ndarray
«весь путь вниз», все элементы (и вложенные элементы) должны иметь одинаковое измерение.