Foros del Web » Programando para Internet » Python »

como hacer la transpuesta de una matriz?

Estas en el tema de como hacer la transpuesta de una matriz? en el foro de Python en Foros del Web. hola!! la duda concreta es: tengo una matriz de 78 columnas y 70 filas (lista de listas) para hacer la transpuesta tengo qque usar transpose ...
  #1 (permalink)  
Antiguo 17/10/2010, 13:39
angel10
Invitado
 
Mensajes: n/a
Puntos:
como hacer la transpuesta de una matriz?

hola!! la duda concreta es:
tengo una matriz de 78 columnas y 70 filas (lista de listas)

para hacer la transpuesta tengo qque usar transpose en una funcion?

gracias!
  #2 (permalink)  
Antiguo 17/10/2010, 13:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 17 años, 2 meses
Puntos: 1360
Respuesta: como hacer la transpuesta de una matriz?

Código Python:
Ver original
  1. matriz = [[i]*78 for i in xrange(70)]
  2.  
  3. def print_r(matriz):
  4.     for fila in matriz:
  5.         print fila
  6.  
  7. def transpuesta(matriz):
  8.     rows = len(matriz)
  9.     cols = len(matriz[0])
  10.     return [[matriz[j][i] for j in xrange(rows)] for i in xrange(cols)]
  11.  
  12. print "Original"
  13. print_r(matriz)
  14. print "TRANSPUESTA"
  15. print_r(transpuesta(matriz))

Esto es la transpuesta. Cambia las filas por columnas.

Última edición por razpeitia; 17/10/2010 a las 14:08
  #3 (permalink)  
Antiguo 18/11/2010, 00:15
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 724
Antigüedad: 15 años
Puntos: 8
Traspuesta

Hola:

Ver ejercicio.


No se si vale la pena hacer este ejercicio. ¿Qué utilidad tiene en este caso?

Parace que tiene desplazamiento en los datos de la matriz y encima se incrtementó una matriz más grande. ¿Tiene mucho código para hacer esto?
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #4 (permalink)  
Antiguo 18/11/2010, 04:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 469
Antigüedad: 13 años, 9 meses
Puntos: 20
Respuesta: Traspuesta

Buenas,

realmente la matriz no es mas grande, solo cambia. Si tenemos una matriz de dimensiones MxN, la traspuesta es NxM.

Es decir, si tenemos una matriz de dimensiones de 3 filas y 2 columnas (3x2), la traspuesta tendra una dimension de 2 filas y 3 columnas (2x3).

En el ejemplo que pones, te dan una matriz 4x3 y la traspuestas es de dimensiones 3x4.

Saludos¡¡
__________________
Revisa las FAQ's antes de disparar.
  #5 (permalink)  
Antiguo 18/11/2010, 09:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 17 años, 2 meses
Puntos: 1360
Respuesta: Traspuesta

Tema Repetido
  #6 (permalink)  
Antiguo 18/11/2010, 11:40
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 724
Antigüedad: 15 años
Puntos: 8
Respuesta: Traspuesta

No lo sabía. Sorry.

Leyendo bien, bien este libro en PDF, es así:

Código Python:
Ver original
  1. M1 = [[1, 2,  3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
  2. M2 = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
  3.  
  4. for i in range(4):
  5.     for j in range(3):
  6.         M2[j][i] = M1[i][j]
  7.  
  8.  
  9. for i in range(3):
  10.     print(M2[i])

http://marmota.act.uji.es/mtp/pdf/python.pdf

;)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #7 (permalink)  
Antiguo 19/11/2010, 09:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Traspuesta

Cita:
Iniciado por razpeitia Ver Mensaje
Temas combinados
  #8 (permalink)  
Antiguo 09/12/2013, 15:48
 
Fecha de Ingreso: diciembre-2013
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: como hacer la transpuesta de una matriz?

Hola,

no se si tu creas la matriz o no, pero si usas el paquete cvxopt basta con agregar .T al final de la variable que contiene la matrix, así

Código Python:
Ver original
  1. x=A.T

de esta manera x contiene la matriz transpuesta de A.

Etiquetas: matriz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:56.