Resuelto tipoguror inflable tipo numpy.Ndarray

Resuelto tipoguror inflable tipo numpy.Ndarray
Los errores son el pan y la mantequilla en la vida de cada programador. Se encontrará con errores sin importar en qué idioma, herramienta o proyecto esté trabajando. Al trabajar con Python, un error que puede encontrar es el error "TipoError: Tipo de inflable". Usando esta guía, entenderemos por qué ocurre este error y qué podemos hacer para solucionarlo en nuestro código.

Python Hashable

Primero debemos entender los objetos de Hashable de Python antes de resolver este error. En Python, un objeto hashable se refiere a un objeto cuyo valor no cambia una vez definido y puede representarse como un valor hash único usando la función hash (). Aunque muy identificable, el hashable no significa necesariamente que el objeto sea inmutable. Esto significa que cada objeto inmutable en Python es de Hashable, pero no todos los objetos de Hashable son inmutables.

Ejemplos de objetos mutables en Python incluyen int, flotadores, str y tuples. Otros tipos, como diccionarios, conjuntos y listas, no se pueden hacer.

Python Check Hashable

Python nos proporciona la función hash () para verificar si un objeto es hashable.

Por ejemplo:

# Compruebe si HASHABLE
Imprimir (Hash ('Linuxhint'))

Usamos la función hash () con un objeto de cadena en el fragmento anterior. Si el objeto proporcionado es hashable, la función debe devolver un valor hash único como se muestra:

-2672783941716432156

Sin embargo, si ejecutamos la función hash () con un tipo de infalición, se genera el error "typeError: infalable:".

Un ejemplo es como se muestra en el siguiente código:

print (hash ('key': 'valor'))

Dado que un diccionario de Python no se ha influido, el código anterior debe devolver el error como se muestra:

TypeError: Tipo de infalible: 'Numpy.ndarray '

Hay tres escenarios principales en los que podemos obtener este error en Numpy. Éstas incluyen:

  1. Usando una matriz numpy Como clave para un diccionario de Python.
  2. Agregar una matriz numpy a un set
  3. Conversión de una matriz N-dimensional a un set.

Usar una matriz Numpy como clave

Solo se pueden usar objetos hashables como claves para un diccionario en Python. Dado que un ndarray numpy no es hashable, cualquier intento de usarlo como clave en un diccionario dará como resultado un error.

Esto se ilustra como se muestra:

importar numpy como np
arr = np.Array ([1,2,3])
dict = arr: 'valor'

En este ejemplo, intentamos usar una matriz numpy como clave para un diccionario. Esto da como resultado el error como se muestra a continuación:

Podemos convertir el tipo de datos en un objeto de hashable para solucionar esto. En nuestro caso, convertir la matriz en un conjunto tiene más sentido.

arr = np.Array ([1,2,3])
# Convertir a Tuple
tup = tuple (arr)
# Establezca la tupla como clave
dict = TUP: 'Valor'
Imprimir (dict)

Convertimos el ndarray a una tupla y la asignamos como la clave.

Agregar una matriz numpy a un conjunto

Intentar agregar un ndarray a un conjunto también dará como resultado este error. Un ejemplo es como se muestra:

arr = np.Array ([1,2,3])
s = set ()
s.Agregar (arr)

Estamos tratando de agregar un ndarray a un set en este caso. Por lo tanto, el código anterior debe devolver un error:

Podemos resolver esto agregando cada elemento de matriz en lugar del objeto de matriz en el conjunto.

arr = np.Array ([1,2,3])
s = set ()
para yo en arr:
s.Agregar (i)
huellas dactilares)

Esto debería agregar todos los elementos de la matriz al conjunto.

1, 2, 3

Conversión de n-dimensión para establecer

Otra instancia en la que puede ocurrir este error es convertir una matriz N-Dimension a un conjunto.

Ejemplo:

arr = np.Array ([[1,2,3], [4,5,6]])
s = set (arr)
huellas dactilares)

El código anterior convierte una matriz 2D en un conjunto. Del mismo modo, el código anterior dará como resultado un error como se muestra:

Puede resolver este error accediendo a los elementos de la matriz individualmente.

Resuelto

Este artículo cubrió el error "TypeError: Unfashable:" Error en Python, por qué ocurre y cómo solucionarlo en nuestro código Numpy.

Nos vemos en el siguiente!!