Reputation: 57
I have a (10,) array I want to reshape in (1,10)
I did the following (u being my array)
import numpy as np
u = u.reshape(-1,1).T
but it does not work, any advice ?
Upvotes: 3
Views: 201
Reputation: 4051
I think @Chris has mentioned well in the comment, you can try out
I have tried out the scenario
>>> 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.]])
I think for your case u.reshape(1, -1)
would do your work.
Upvotes: 3
Reputation: 468
Another trick in the book that works is with np.newaxis
u = u[np.newaxis,:]
Should give you an array with shape (1,10)
Upvotes: 0
Reputation: 6483
As mentioned by Chris in his comment you simply want to reshape the array by fixing the number of rows to one and let Python figure out the other dimension:
u=u.reshape(1, -1)
Upvotes: 3
Reputation: 675
You can try to use expand_dims()
method.
import numpy as np
a = np.zeros(10) # a.shape = (10,)
a = np.expand_dims(a, axis=0)
print(a.shape)
Output
(1, 10)
Upvotes: 2