2016-06-17 2 views
1

У меня есть очень уникальная ошибка, которую я чувствую. Я работаю с массивом «A» формыPython reshape array

>>> A.shape 
(1L, 1823L, 24L) 

Я пытаюсь избавиться от первого измерения, поскольку оно пусто. Итак, я делаю что-то вроде:

>>> z1 = A[0,:,:] 
>>> z1.shape 
(1253L,) 
>>> z1[0].shape 
() 
>>> z1[0] 
10411.505889359611 

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

Я также попытался сжать как:

import numpy as np 
>>> z2 = np.squeeze(A,0) 
>>> z2.shape 
(1253L,) 

Моя конечная цель состоит в том, чтобы сделать вектор из элементов массива «A», что после отжима А размерности 1823x24, я собираю элементы из рядов мудрая порядка ,

Редактировать: Мой код должен был работать, но временная переменная, которую я использовал для процесса, по какой-то причине не менялась. Я попытался удалить временную переменную и все равно не уйду. Итак, я создал новую временную переменную, и она сработала. Я использую Pycharm, поэтому я не уверен, откуда эта проблема.

+0

Вы уверены, что вы не баловаться некоторые другие вещи вверх? 'np.random.random ((1,1823,24)) [0,:,:]. Shape' возвращает' (1823L, 24L) 'для меня. –

+1

Это не имеет смысла. Вы уверены, что 'A', для которого вы печатаете' A.shape' и 'A', для которых вы делаете' A [0,:,:] ', являются теми же' A'? Можете ли вы показать нам «тип (A)» и «A.dtype»? – user2357112

+0

Да, я поцарапал себе голову над этим. Но так оно и было. – Zanam

ответ

0

Для этого можно использовать np.reshape().

Пример from the docs:

>>> a = np.arange(6).reshape((3, 2)) 
>>> a 
array([[0, 1], 
     [2, 3], 
     [4, 5]]) 

В вашем примере это будет:

A.reshape((1823, 24)) 
+0

В теории, это должно работать, но так должен код, который задавал вопросник. – user2357112