Как изменить форму массива фигуры (26400, 1, 0, 1, 2048), чтобы придать ей форму (26400, Нет, Нет, 2048) - PullRequest
1 голос
/ 16 апреля 2019

В поисках решения для преобразования массива numpy из формы (26400, 1, 0, 1, 2048) в (264400, None, None, 2048)

1 Ответ

1 голос
/ 17 апреля 2019

1-е место в Google по запросу "numpy удалить размеры 1": numpy.squeeze - руководство по NumPy v1.16 :

In [3]: z=np.zeros((100,1,0,1,100))

In [5]: z.squeeze()
Out[5]: array([], shape=(100L, 0L, 100L), dtype=float64)

Как и предполагали другие, такого размера не существует, как None в numpy. Если вы попытаетесь создать numpy.array с таким «размером измерения», вы получите (начиная с NumPy 1.16) None, и будет напечатано DeprecationWarning, отметив, что эта семантика скоро будет удалена.

И удаление измерения 0 невозможно, потому что это означает, что ваш массив пуст, и если он будет удален, результат больше не будет пустым, поэтому вам потребуется что-то для его заполнения.

В comment98113945 вы упомянули, что ваш размер "None" является требованием некоторой функции. В этом контексте, я считаю, «None» означает «любой размер».

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