Numpy массив с массивами разного размера внутри - PullRequest
0 голосов
/ 24 мая 2019

Я хочу создать 3D np.array с именем output различного размера.Массив размера (5, а, б);с изменением a и b (уменьшение b):

(a,b) = (1000,20)
(a,b) = (1000,19)
(a,b) = (1000,18)
(a,b) = (1000,17)
(a,b) = (1000,16)

Я мог бы создать массив массивов, чтобы сделать это, но позже я хочу получить первый столбец всех массивов (без цикла) тогда я не могу использовать:

output[:,:,0]

Конкатенация их также не будет работать, он запрашивает тот же размер массивов ...

Любые альтернативы, чтобы иметь возможность варьировать один массиввместо массива массивов?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Как сказал @Divakar, создайте пустой массив с типом object и назначьте массивы разного размера их соответствующим индексам.

import numpy as np

arrs = [np.ones((5, i, 10 - i)) for i in range(10)]
arrs[0].shape
(5, 0, 10)
arrs[1].shape
(5, 1, 9)
out = np.emtpy(len(arrs), dtype=object)
out[:] = arrs
out[0].shape
(5, 0, 10)
out[1].shape
(5, 1, 9)
0 голосов
/ 24 мая 2019

Может быть, вы могли бы составить список и добавить эти 5 массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...