как сгладить (n,) форму массива numpy - PullRequest
0 голосов
/ 12 октября 2018

У меня есть переменная с именем data, и я хочу сгладить ее.

Прямо сейчас data.shape = (10, ).Каждый элемент данных имеет форму (5000, 64).Я хочу сделать мой data.shape = (10, 5000, 64).

Как я могу это сделать?Я пробовал много ниже, но ни один из них не работает:

b = np.concatenate(t for t in data)
b = np.stack(t for t in data)
b = np.hstack(t for t in data)

Кто-нибудь есть идеи по этому поводу?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

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

0 голосов
/ 12 октября 2018
In [50]: t = np.zeros(3,object)
In [51]: t[0]=np.ones((3,2),int)
In [52]: t[1]=np.ones((3,2),int)
In [53]: t[2]=np.ones((3,2),int)
In [54]: t
Out[54]: 
array([array([[1, 1],
       [1, 1],
       [1, 1]]),
       array([[1, 1],
       [1, 1],
       [1, 1]]),
       array([[1, 1],
       [1, 1],
       [1, 1]])], dtype=object)
In [55]: np.stack(t)
Out[55]: 
array([[[1, 1],
        [1, 1],
        [1, 1]],

       [[1, 1],
        [1, 1],
        [1, 1]],

       [[1, 1],
        [1, 1],
        [1, 1]]])
In [56]: _.shape
Out[56]: (3, 3, 2)

np.stack(x for x in t) также работает, но дополнительный уровень итерации не требуется.

Когда вы говорите, что что-то не работает, вам нужно уточнить.В чем именно была ошибка?Была ли это та же ошибка для каждой из вещей, которые вы пробовали?Без такой информации вы получите ответы, подобные моему - контрольный пример, который соответствует вашему описанию, который работает.

hstack работает, но присоединяется к массивам другим способом.

concatenate не работает с входом (t for t in x), но нормально работает с (x).

Если предположить, что массив типа dtype является правильным, это не случай flatten.numpy расплющить, как ravel, изменитель формы.Но это другое.У меня есть массивы внутри массива объектов, фактически список массивов, а не многомерный массив.

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