Как изменить форму массива в Python, используя Numpy? - PullRequest
3 голосов
/ 04 апреля 2019

У меня есть массив (10,), который я хочу изменить в (1,10)

Я сделал следующее (ты мой массив)

import numpy as np

u = u.reshape(-1,1).T

, но это не такработа, любой совет?

Ответы [ 5 ]

3 голосов
/ 04 апреля 2019

Как отметил Крис в своем комментарии, вы просто хотите изменить форму массива, установив число строк в одну, и позволит Python выяснить другое измерение :

u=u.reshape(1, -1)
2 голосов
/ 04 апреля 2019

Вы можете попробовать использовать expand_dims() метод.

import numpy as np

a = np.zeros(10) # a.shape = (10,)
a = np.expand_dims(a, axis=0)
print(a.shape)

выход

(1, 10)
1 голос
/ 04 апреля 2019

Я думаю, что @Chris хорошо упомянул в комментарии, вы можете попробовать

Я опробовал сценарий

>>> import numpy as np
>>> u = np.zeros((10))

>>> u.shape
(10,)
>>> u.T
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> u = u.reshape(1, -1)
>>> u.shape
(1, 10)
>>> u.T
array([[0.],
   [0.],
   [0.],
   [0.],
   [0.],
   [0.],
   [0.],
   [0.],
   [0.],
   [0.]])

Я думаю, что для вашего случая u.reshape(1, -1) сделает вашу работу.

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

То, что вы хотите:

u = u.reshape((-1, 1)).T
0 голосов
/ 04 апреля 2019

Еще одна хитрость в книге, которая работает с np.newaxis

 u = u[np.newaxis,:]

Должен дать вам массив с формой (1,10)

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