Tengo una matriz numpy estoy poniendo un ejemplo aquí

Mi objetivo es revertir la corrección x-y de toda París,

Por favor dime como hacer eso?

X viene del bucle, y cada vez que quiero convertirlo en esperado

input-:

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

expected
 =[[2,1],[2,1],[4,1],[2,1],[2,3]]

¿Cómo puedo obtener ese resultado?

-2
Deck 21 jul. 2020 a las 18:14

3 respuestas

La mejor respuesta

En primer lugar, debe hacer su matriz nparray. Luego puede usar la función NumPy.flip:

numpy.flip(m, axis=None)

Invierta el orden de los elementos en una matriz a lo largo del eje dado.

La forma de la matriz se conserva, pero los elementos se reordenan.

Simplemente invierte el nparray con una variable adicional que define la dimensión del volteo. Su dimensión deseada es 1:

import numpy as np
x = np.array([[1, 2], [1, 2], [1, 4], [1, 2], [3, 2]])
y = np.flip(x, 1)

print(x) #array([[1, 2], [1, 2], [1, 4], [1, 2], [3, 2]])
print(y) #array([[2, 1], [2, 1], [4, 1], [2, 1], [2, 3]])
0
Egor Randomize 21 jul. 2020 a las 15:54

Su código de ejemplo no usa numpy. Así es como puedes hacerlo:

A) Con una simple comprensión de la lista de Python

x=[[1,2],[1,2],[1,2],[1,2],[1,2]]
y = [[element[1],element[0]] for element in x]

B) Usar numpy para voltear la matriz a lo largo de axis=1:

x = np.array([[1,2],[1,2],[1,2],[1,2],[1,2]])
y = np.flip(x, 1)
1
mduc 21 jul. 2020 a las 15:19

Usando la comprensión de la lista, puede invertir cada par.

El -1 en [::-1] denota un paso negativo (también conocido como inverso).

expected = [pair[::-1] for pair in x]
0
Mr. Polywhirl 21 jul. 2020 a las 15:16