Trasponer una matriz en Python

La definción técnica del término matriz traspuesta es “el resultado de reordenar la matriz original mediante el cambio de filas por columnas y las columnas por filas en una nueva matriz”. Imaginemos que tenemos un array en Python tal que así:

x = [[1,2,3],
  [2,3,1],
  [3,1,2]]

Ahora queremos meter esa matriz en otra variable, pero tras trasponerla. Si bien en la mayoría de los lenguajes es posible trasponer la matriz utilizando una serie de bucles anidados, en Python podremos hacerlo de forma muy sencilla sirviéndonos de la función zip() y el operador *. Para almacenar la matriz traspuesta en otra variable bastaría con hacer:

y=zip(*x)

Y solo con esa línea ya habría traspuesto nuestra matriz original.