3

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 ?

3
  • 3
    Try u.reshape(1, -1) Commented Apr 4, 2019 at 8:01
  • np.expand_dims(u, axis=0) Commented Apr 4, 2019 at 8:02
  • 1
    Possible duplicate of What does -1 mean in numpy reshape? Commented Apr 4, 2019 at 8:03

5 Answers 5

3

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)
Sign up to request clarification or add additional context in comments.

Comments

3

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.

Comments

2

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)

Comments

1

What you want is :

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

Comments

0

Another trick in the book that works is with np.newaxis

 u = u[np.newaxis,:]

Should give you an array with shape (1,10)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.