¿Cómo ajustar la indexación en este código para que funcione correctamente debido a este FutureWarning?

D:/Arc/Arc_Project\Architecture\_Z07_Adjust_X_Y\backward_sequentialize.py:165: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
a = np.asarray([
           np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,0,1]),
              np.asarray([1,1,1,1])
                                  ]),
          np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,1,1]),
              np.asarray([1,1,1,1])
                                  ]),
         np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,2,1]),
              np.asarray([1,1,1,1])
                                  ])
         np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,3,1]),
              np.asarray([1,1,1,1])
                                  ])
         np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,4,1]),
              np.asarray([1,1,1,1])
                                  ])
         np.asarray([
              np.asarray([1,1,1,1]),
              np.asarray([1,1,5,1]),
              np.asarray([1,1,1,1])
                                  ]) ])
locs = [2,5]
print(a[[locs]])
         [ [1,1,1,1]
           [1,1,2,1]
           [1,1,1,1] ]
         [ [1,1,1,1]
           [1,1,5,1]
           [1,1,1,1] ]

¿Estoy entendiendo bien que locs = tuple ([2,5]) lo hará?

EDITAR: no solo quiero que la advertencia desaparezca, porque como dice probablemente no funcionará correctamente en el futuro.

EDITAR: También estoy haciendo esto: (¿cómo ajustar eso también?)

    a = np.array([x[-(SEQ_LEN):] for x in a])
0
La-Li-Lu-Le-Lo 1 sep. 2020 a las 06:11

1 respuesta

La mejor respuesta

Para acceder a los elementos dados, simplemente envíe la matriz de los índices requeridos seguido de , para representar los otros ejes y devolver los requeridos en el eje dado.

array[([2,5],)], eso debería solucionarlo.

1
Anurag Reddy 8 sep. 2020 a las 15:38