Lo que necesito es una forma de obtener "indexación sofisticada" (y = x [[0, 5, 21]]) para devolver una vista en lugar de una copia.¿Puedo obtener una vista de una matriz numpy en índices especificados? (una vista de "indexación sofisticada")
Tengo una matriz, pero quiero poder trabajar con un subconjunto de esta matriz (especificado por una lista de índices) de tal manera que los cambios en este subconjunto también se colocan en los lugares correctos en el gran variedad. Si solo quiero hacer algo con los primeros 10 elementos, solo puedo usar el corte regular y = x [0:10]. Eso funciona muy bien, porque el corte regular devuelve una vista. El problema es si no quiero 0:10, sino un conjunto arbitrario de índices.
¿Hay alguna manera de hacerlo?
Usted vencer yo a eso. Lo único que iba a agregar era esto: http://projects.scipy.org/numpy/ticket/224 Indicó que esto no es probable que cambie. – Paul
Oh si este tipo de asignación a la matriz indexada (x [ii] = y) funciona, entonces eso hace lo que necesito, supongo. – Eskil
@Eskil Esto se debe a que 'x [ii] = y' invoca' x .__ setitem __ (ii, y) 'por lo que no hay copia involucrada aunque haya usado una matriz de índice. Es cierto que 'x [ii]' devuelve una copia, pero esto invoca 'x .__ getitem __ (ii)' y es una historia diferente. –