# Syntax in Python (.T)

Each Answer to this Q is separated by one/two green lines.

In the help resource for the multivariate normal sampling function in SciPy, they give the following example:

``````x,y = np.random.multivariate_normal(mean,cov,5000).T
``````

My question is rather basic: what does the final .T actually do?

Thanks a lot, I know it is fairly simple, but it is hard to look in Google for “.T”.

The `.T` accesses the attribute `T` of the object, which happens to be a NumPy array. The `T` attribute is the transpose of the array, see the documentation.

Apparently you are creating random coordinates in the plane. The output of `multivariate_normal()` might look like this:

``````>>> np.random.multivariate_normal([0, 0], [[1, 0], [0, 1]], 5)
array([[ 0.59589335,  0.97741328],
[-0.58597307,  0.56733234],
[-0.69164572,  0.17840394],
[-0.24992978, -2.57494471],
[ 0.38896689,  0.82221377]])
``````

The transpose of this matrix is:

``````array([[ 0.59589335, -0.58597307, -0.69164572, -0.24992978,  0.38896689],
[ 0.97741328,  0.56733234,  0.17840394, -2.57494471,  0.82221377]])
``````

which can be conveniently separated in `x` and `y` parts by sequence unpacking.

.T is just np.transpose().
Best of luck

Example

``````import numpy as np
a = [[1, 2, 3]]
b = np.array(a).T  # ndarray.T The transposed array. [[1,2,3]] -> [[1][2][3]]
print("a=", a, "\nb=", b)
for i in range(3):
print(" a=", a[0][i])  # prints  1 2 3
for i in range(3):
print(" b=", b[i][0])  # prints  1 2 3
``````

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .