Можем ли мы инициализировать массив массивов numpy с разными формами, используя какой-либо конструктор?

Мне нужен массив, который выглядит так,

array([array([[1, 1], [2, 2]]), array([3, 3])], dtype=object)

Я могу создать пустой массив, а затем назначать элементы один за другим следующим образом:

z = [np.array([[1,1],[2,2]]), np.array([3,3])]
x = np.empty(shape=2, dtype=object)
x[0], x[1] = z

Я подумал, что если это возможно, то должно быть так: x = np.array(z, dtype=object), но это приводит к ошибке: ValueError: could not broadcast input array from shape (2,2) into shape (2).

Так является ли способ, указанный выше, единственным способом сделать рваный массив numpy? Или есть хороший конструктор/функция с одной строкой, которую мы можем вызвать, чтобы сделать массив x сверху.


person scribe    schedule 11.06.2020    source источник
comment
Отвечает ли это на ваш вопрос? массив Python numpy массивов numpy   -  person LazyCoder    schedule 11.06.2020
comment
Нет, я не собираюсь добавлять или объединять строку/столбец. Мне нужен массив других объектов массива, которые имеют разные формы, как показано в примере массива x.   -  person scribe    schedule 11.06.2020