TypeError: unhashable type: 'numpy.ndarray' 错误解析及解决方法 (Jupyter Notebook)
在 Jupyter Notebook 中解决 'TypeError: unhashable type: 'numpy.ndarray'' 错误
在 Jupyter Notebook 中使用 NumPy 数组时,你可能会遇到 TypeError: unhashable type: 'numpy.ndarray' 错误。这个错误信息表明你尝试将一个 NumPy 数组用作字典的键或集合的元素,而这是不允许的。
错误原因:
NumPy 数组是可变对象,这意味着它们的内容可以被修改。而字典的键和集合的元素必须是不可变的,以便能够进行哈希运算,确保数据的唯一性和快速查找。
解决方法:
要解决此错误,你需要将 NumPy 数组转换为不可变类型,例如元组:
-
使用
tuple()函数: 将 NumPy 数组作为参数传递给tuple()函数,将其转换为元组。import numpy as np my_array = np.array([1, 2, 3]) my_tuple = tuple(my_array) # 现在可以使用 my_tuple 作为字典的键或集合的元素 my_dict = {my_tuple: 'value'} my_set = {my_tuple} -
其他不可变类型: 除了元组,你还可以考虑将 NumPy 数组转换为其他不可变类型,例如字符串(如果数组内容可以表示为字符串)或自定义的不可变对象。
总结:
遇到 'TypeError: unhashable type: 'numpy.ndarray'' 错误时,记得将 NumPy 数组转换为不可变类型,例如元组,以便能够在字典键或集合元素中使用它们。
原文地址: https://www.cveoy.top/t/topic/jPlS 著作权归作者所有。请勿转载和采集!