Python – Alternativa para usar una matriz numpy como clave en el diccionario

Soy bastante nuevo en Python numpy. Intenté usar la matriz numpy como la clave en el diccionario en una de mis funciones y luego el intérprete de Python me dijo que la matriz numpy no es hashable. Acabo de descubrir que una forma de solucionar este problema es usar la función repr() para convertir una matriz numpy en una cadena pero parece muy costoso. ¿Hay alguna mejor manera de lograr el mismo efecto?

Actualización: podría crear una nueva clase para contener la matriz numpy, que parece ser la forma correcta de lograr lo que quiero. ¿Solo te preguntas si hay algún método mejor?

actualización 2: el uso de una clase para contener datos en la matriz y luego anular la función __hash__ es aceptable, sin embargo, prefiero la solución provista por @hpaulj. Convertir la array/list en una tuple adapta mejor a mi necesidad, ya que no requiere una clase adicional.

Después de hacer algunas investigaciones y leer todos los comentarios. Creo que he sabido la respuesta a mi propia pregunta, así que simplemente la escribí.

  1. Escriba una clase que contenga los datos en la array y luego __hash__ función __hash__ para modificar la forma en que se realiza el hash, como lo menciona ZdaR
  2. Convierta esta array en una tuple , lo que hace que la lista sea hashable instantáneamente. Gracias a hpaulj

Prefiero el método No.2 porque se adapta mejor a mi necesidad, así como más simple. Sin embargo, usar una clase puede traer algunos beneficios adicionales, por lo que también podría ser útil.

Si desea almacenar rápidamente un numpy.ndarray como una clave en un diccionario, una opción rápida es usar ndarray.tobytes () que devolverá una cadena de bytes python sin procesar que es inmutable

 my_array = numpy.arange(4).reshape((2,2)) my_dict = {} my_dict[my_array.tobytes()] = None