2011-04-21 14 views
37

En el recurso de ayuda para la función de muestreo normal multivariante en SciPy, dan el siguiente ejemplo:sintaxis en Python (.T)

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

Mi pregunta es bastante básico: ¿qué hace la final .T hacer realidad ?

Muchas gracias, sé que es bastante simple, pero es difícil buscar en Google ".T".

+1

El secreto para buscar en Google esto es ponerlo entre comillas. ¡Por supuesto, cuando busqué en Google obtuve esta página! – Kallaste

+0

Espero que esto ayude a alguien más a encontrarlo, pero, '.T' _vuelve_ el orden de los ejes, en lugar de cambiar los dos últimos. Esto significa que si su matriz 'x' es 3-D,' x.T' es lo mismo que 'x.transpose ((2, 1, 0))'. Si quiere cambiar los dos últimos ejes, en este caso, haría 'x.transpose ((0, 2, 1))'. –

Respuesta

42

El .T tiene acceso al atributo T del objeto, que pasa a ser una matriz NumPy. El atributo T es la transposición de la matriz, consulte the documentation.

Aparentemente está creando coordenadas al azar en el plano. La salida de multivariate_normal() podría tener este aspecto:

>>> 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]]) 

La transpuesta de esta matriz es:

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

que puede ser convenientemente separado en x y y partes en secuencia desembalaje.

-2

.T es solo np.transpose(). Lo mejor de la suerte

Cuestiones relacionadas