Python - recorrer una matriz y transformarla

 
Vista:

recorrer una matriz y transformarla

Publicado por Esteban (2 intervenciones) el 03/12/2018 05:58:05
Holaaa a todos, estoy con dudas de un problema que no he podido resolver. Tengo una matriz A = np.array([[0],[1],[0],[1]]) ,y lo que quiero hacer es recorrer esta matriz y cada vez que reconozca un "1", cree una nueva matriz (B) con "0" después de identificar el primer "1", es decir, para la matriz A le correspondería algo así, B = ([[0],[1],[0],[0]]).
Saludos a todos, espero se pueda resolver esto.
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

recorrer una matriz y transformarla

Publicado por Esteban (2 intervenciones) el 03/12/2018 13:59:40
Esto he intentado, es poco convencional. lo que busco es que sea automático, que no tenga que escribir la matriz que quiero lograr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
A = np.array([[0],[1],[1],[0]])
error = 1.5
if error == 0 :
    pass
else:
    if A[0] == 1:
        A = np.array([[1],[0],[0],[0]])
    else:
        pass
    if A[1] == 1:
        A = np.array([[0],[1],[0],[0]])
    else:
        pass
    if A[2] == 1:
        A = np.array([[0],[0],[1],[0]])
    else:
        pass
    if A[3] == 1:
        A = np.array([[0],[0],[0],[1]])
    else:
        pass
 
print(A)]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

recorrer una matriz y transformarla

Publicado por tincopasan (1082 intervenciones) el 04/12/2018 04:40:25
la verdad que no se como será todo el planteo, pero en este caso específico lo haría así, sin modificar el original ya que es básicamente un array de 0 con un 1 en una posición inicial :
1
2
3
4
5
6
7
8
9
#-*- coding: utf -8 -*-
import numpy as np
A =np.array ([[0],[1],[1],[0]])
tamaño=A.shape
b=np.zeros(tamaño)
indice= np.where(A == 1)[0]
b[indice[0]]=1
print(A)
print(b)

así sin importar la dimensión no es repetitivo elemento a elemento. Ahora¿es obligatorio que sea con numpy?
es muy fácil de entender, aunque seguro hay muchas otras formas.
Saludos
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