Python - copiar filas

 
Vista:

copiar filas

Publicado por juan (6 intervenciones) el 10/12/2020 15:51:11
buenos dias/tardes/noche

soy principiante en esto de python y estoy creando un programa para resolver ecuaciones lineales por elimiancion gaussiana. pero quisiera saber como puedo copiar filas dependiendo del numero de filas que me de el usuario, o sea por ejemplo, si el usuario pone una matriz 4x4 me gustaria copiar esas 4 filas. me imagino que por un FOR, pero no se como.

agradezco su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

copiar filas

Publicado por joel (901 intervenciones) el 10/12/2020 20:17:59
No se muy bien a que te refieres, pero si quieres copiar un array a otro es con copy()... algo así:

1
2
a=[[1,2,3], [1,2,3], [1,2,3], [1,2,3]]
b=a.copy()

Entiendo que no es esto lo que preguntas, verdad? puedes poner un ejemplo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

copiar filas

Publicado por juan (6 intervenciones) el 11/12/2020 02:29:44
hola, compañero, gracias por responder.
lo que quiero es hacer un programa que sea general, que no importe si la matriz en 3x3 o 4x4. para eso quiero copiar cada fila para hacer operaciones, por ejemplo:
1
a=[[1,2,3], [1,2,3], [1,2,3], [1,2,3]]
entonces quiero copiar
1
2
3
4
5
fila_1 = a[0].copy()
fila_2 = a[1].copy)()
.
.
.
y asi sucesivamente, pero en este caso ya se que tengo 4 filas que copiar, pero y si no supiera que son 4?
entonces quiero crear un codigo que me copie esas filas dependiento del tamaño de la matriz.
no se si me hice entender
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

copiar filas

Publicado por joel (901 intervenciones) el 11/12/2020 08:42:34
Hola Juan, Ahora si que te he entendido... pero esto que quieres hacer, no tiene mucho sentido... no se utiliza nunca... si quieres hacer operaciones con las filas de un array bidimensional, puedes hacerlo sin tener que utilizar N variables!!

Que operaciones quieres hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

copiar filas

Publicado por juan (6 intervenciones) el 12/12/2020 16:13:00
quiero por ejemplo, multiplicar toda la fila por algun valor. te pondre un ejemplo de como converti el primer valor de la fila uno, en uno.
tambien he de aclarar que esto lo quiero hacer con python puro, sin utilizar librerias como numpy

1
2
3
4
5
6
7
8
9
A = [[2,1,3,4],
      [2,2,3,5],
      [-2,3,6,7]]
 
fila_1= A[0].copy()
 
for i in range(len(A[0])):
 
      A[0][i]=A[0][i]/fila_1[0]



esto es un borrador donde practico mis codigos, y aqui lo que hice fue convertir el 2 de la primera fila en un 1.
pero como hago esto para nxn? eso es lo que no se. parece inviable copiar n filas para cada operacion.
muchas gracias por su atencion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

copiar filas

Publicado por joel (901 intervenciones) el 13/12/2020 12:44:14
Hola Juan, en tu código de ejemplo lo que has hecho ha sido dividir todos los elemento de la primera lista por el primer valor... es decir:
2/2, 1/2, 3/2 y 4/2

Si lo que quieres es dividir de todas listas todos los valores por el primero, puedes hacer algo así utilizando "for":
1
2
3
4
5
6
7
8
9
A = [[2,1,3,4],
     [2,2,3,5],
     [-2,3,6,7]]
 
for i in A:
    for j in range(len(i)-1, -1, -1):
        i[j]=i[j]/i[0]
 
print(A)

o algo así utilizando "map":
1
2
3
4
5
6
7
A = [[2,1,3,4],
     [2,2,3,5],
     [-2,3,6,7]]
 
A=list(map(lambda i: list(map(lambda j: j/i[0], i)), A))
 
print(A)

En los dos ejemplos te devolverá: [[1.0, 0.5, 1.5, 2.0], [1.0, 1.0, 1.5, 2.5], [1.0, -1.5, -3.0, -3.5]]


te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar