Объединение нескольких массивов numpy в одном и том же первом измерении

#python #arrays #numpy #nested-lists #numpy-slicing

#python #массивы #numpy #вложенные списки #numpy-нарезка

Вопрос:

У меня есть два массива numpy a и b с тем же первым измерением, например a.shape -> (3, 100) , и b.shape -> (3, 20, 20) .

Мне нужно, чтобы они были преобразованы (как можно более эффективно) в массив (или вложенный список или dict?) ab это имеет то же первое измерение (здесь 3 ). Поэтому, когда я вызываю ab[1] , он должен возвращать что-то вроде [a[1], b[1]] (или по-другому ab[:][0] == a и ab[:][1] == b ).

Я чувствую, что это простая проблема, но я не знаю, что искать, и я уже слишком долго сижу над этим.

Ответ №1:

Не существует способа создать объединенный массив NumPy с массивами разной формы. Что вы могли бы сделать, это использовать список и поместить их в одни и те же строки.

 ab = [[a[i],b[i]] for i in range(3)]
(ab[0][0] == a[0]).all()
>>>True