Tengo un arsenal muy grande numpy (que contienen hasta un millón de elementos) como la siguiente:sustitución rápida de los valores en una matriz numpy
[ 0 1 6 5 1 2 7 6 2 3 8 7 3 4 9 8 5 6 11 10 6 7 12 11 7
8 13 12 8 9 14 13 10 11 16 15 11 12 17 16 12 13 18 17 13 14 19 18 15 16
21 20 16 17 22 21 17 18 23 22 18 19 24 23]
y un pequeño mapa diccionario para la sustitución de algunos de los elementos en la matriz anterior
{4: 0, 9: 5, 14: 10, 19: 15, 20: 0, 21: 1, 22: 2, 23: 3, 24: 0}
Me gustaría reemplazar algunos de los elementos de acuerdo con el mapa de arriba. La matriz numpy es realmente grande, y solo un pequeño subconjunto de los elementos (que aparecen como claves en el diccionario) se reemplazará por los valores correspondientes. ¿Cuál es la forma más rápida de hacer esto?
'numpy.place' Creo ... – katrielalex
Iterar como' para k en d' haría que esto sea lo más rápido posible' – jamylak
Un voto en contra 'numpy.place' como lo menciona @katrielalex, ya que solo desperdicia alrededor de veinte a treinta horas de mi tiempo por tener errores; aparentemente su uso está desaconsejado. "Por lo general, sugiero usar' np.copyto' o (en este caso) boolean indice de fantasía para lograr lo mismo y evitar 'np.place' o' np.putmask'. Me doy cuenta de que en algunos casos esas funciones no son del todo 1: 1 reemplaza por estos ". FWIW No tenía este error, sino otro en el que silenciosamente no funcionaba. – ijoseph