vbx8977
vbx8977

Reputation: 57

How to reshape an array in Python using Numpy?

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

Answers (5)

Chitrank Dixit
Chitrank Dixit

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

Ash Sharma
Ash Sharma

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

CAPSLOCK
CAPSLOCK

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

sowlosc
sowlosc

Reputation: 480

What you want is :

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

Upvotes: 1

user3053452
user3053452

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

Related Questions