Ordenación de numpy.ndarray para devolver índices
Errores = [[ 0., 9., 12., 9., 14., 5., 4., 10., 8., 8., 6., 5., 9.],
[ 9., 0., 22., 16., 11., 12., 9., 21., 14., 11., 16., 15., 9.],
[12., 22., 0., 18., 23., 16., 10., 22., 21., 13., 13., 13., 15.],
[ 9., 16., 18., 0., 11., 12., 8., 19., 20., 11., 7., 9., 13.],
[14., 11., 23., 11., 0., 11., 7., 18., 9., 10., 7., 7., 14.],
[ 5., 12., 16., 12., 11., 0., 7., 13., 15., 5., 8., 10., 9.],
[ 4., 9., 10., 8., 7., 7., 0., 8., 8., 3., 4., 7., 4.],
[10., 21., 22., 19., 18., 13., 8., 0., 18., 12., 14., 13., 11.],
[ 8., 14., 21., 20., 9., 15., 8., 18., 0., 5., 11., 16., 10.],
[ 8., 11., 13., 11., 10., 5., 3., 12., 5., 0., 8., 9., 5.],
[ 6., 16., 13., 7., 7., 8., 4., 14., 11., 8., 0., 11., 7.],
[ 5., 15., 13., 9., 7., 10., 7., 13., 16., 9., 11., 0., 4.],
[ 9., 9., 15., 13., 14., 9., 4., 11., 10., 5., 7., 4., 0.]]
Arriba se muestra un numpy.ndarray de forma (13,13) con errores obtenidos en una determinada tarea de clasificación utilizando dos de las 13 características.
La tarea aquí es encontrar el error mínimo alcanzable y el par de características que logra este error mínimo.
Debido a que los datos son pocos, el error mínimo se puede ver a simple vista, es 3 y el par de características es (6,9) o (9,6).
(La línea diagonal con valores de 0 es la característica consigo misma, por lo que no se incluyó).
He intentado hacerlo con ‘argsort’, pero solo ordena cada fila por separado y no he llegado a la respuesta.
Por favor, ayuda.
davy.ai
Para encontrar el error más pequeño alcanzable y el par de características que logra este error mínimo, podemos usar el método
unravel_index
de numpy para obtener los índices del valor mínimo en el arreglo, y luego convertir esos índices al par correspondiente de características.Esto debería dar una salida de
El error más pequeño alcanzable es 3.00 utilizando las características 6 y 9
.