В Python 3 я импортирую несколько файлов данных в цикле и хотел бы иметь возможность хранить все данные в одном двумерном массиве. Я начинаю с чего-то вроде data = np.array([])
и на каждой итерации я хочу добавить новый массив datai = np.array([1,2,3])
, как мне сделать так, чтобы мой окончательный массив выглядел так? [[1,2,3],[1,2,3],...,[1,2,3]]
Я пробовал np.append, np.concatenate и np.stack, но ни один из них не работает. Пример кода, который я пытаюсь:
data = np.array([])
for i in range(datalen):
datai = *func to load data as array*
data = np.append(data, datai)
но, конечно, это возвращает сглаженный массив. Есть ли способ вернуть двумерный массив длины datalen
, где каждый элемент является массивом datai
?
Спасибо!
vstack
. Все ли ваши подмассивы одинаковой длины? - person user3483203   schedule 03.08.2018np.append
. Что там говорится об исключении параметраaxis
? - person hpaulj   schedule 03.08.2018np.empty([])
не совпадает со списком[]
. Посмотрите на егоshape
иndim
. Чтобыconcatenate
работал, входные данные должны иметь совпадающие размеры.data1
равно 1d (3,). Его можно соединить по оси 0 с другим массивом 1d. Чтобы присоединиться к новой начальной оси, она должна быть 2d (это то, к чему обращаетсяvstack
). В любом случае добавление повторного списка - правильный путь, а не повторная конкатенация. - person hpaulj   schedule 03.08.2018data1
? Как вы его загружаете? Часто при загрузке из txt-файла результирующий массив будет 2d. Это может быть, конечно, 1d. - person hpaulj   schedule 03.08.2018