numpy的转置方法无法将一维行ndarray转换为第一列

Let's consider a as an 1D row/horizontal array:

import numpy as np
N = 10
a = np.arange(N) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a.shape # (10,)

now I want to have b a 1D column/vertical array transposed of a:

b = a.transpose() # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b.shape # (10,)

but the .transpose() method returns an identical ndarray whith the exact same shape!

我期望看到的是

np.array([[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]])

这可以通过

c = a.reshape(a.shape[0], 1) # or c = a; c.shape = (c.shape[0], 1)
c.shape # (10, 1)

and to my surprise, it has a shape of (10, 1) instead of (1, 10).

在Octave / Scilab中,我可以执行以下操作:

N = 10
b = 0:(N-1)
a = b'
size(b) % ans = 1   10
size(a) % ans = 10   1

I understand that numpy ndarrays are not matrices (as discussed here), but the behavior of the numpy's transpose function just doesn't make sense to me! I would appreciate it if you could help me understand how this behavior makes sense and what am I missing here.

P.S. So what I have understood so far is that b = a.transpose() is the equivalent of b = a; b.shape = b.shape[::-1] which if you had a "2D array" of (N, 1) would return a (1, N) shaped array, as you would expect from a transpose operator. However, numpy seems to treat the "1D array" of (N,) as a 0D scalar. I think they should have named this method something else, as this is very misleading/confusing IMHO.