在 Jupyter Notebook 中解决 'TypeError: unhashable type: 'numpy.ndarray'' 错误

在 Jupyter Notebook 中使用 NumPy 数组时,你可能会遇到 TypeError: unhashable type: 'numpy.ndarray' 错误。这个错误信息表明你尝试将一个 NumPy 数组用作字典的键或集合的元素,而这是不允许的。

错误原因:

NumPy 数组是可变对象,这意味着它们的内容可以被修改。而字典的键和集合的元素必须是不可变的,以便能够进行哈希运算,确保数据的唯一性和快速查找。

解决方法:

要解决此错误,你需要将 NumPy 数组转换为不可变类型,例如元组:

  1. 使用 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}
    
  2. 其他不可变类型: 除了元组,你还可以考虑将 NumPy 数组转换为其他不可变类型,例如字符串(如果数组内容可以表示为字符串)或自定义的不可变对象。

总结:

遇到 'TypeError: unhashable type: 'numpy.ndarray'' 错误时,记得将 NumPy 数组转换为不可变类型,例如元组,以便能够在字典键或集合元素中使用它们。

TypeError: unhashable type: 'numpy.ndarray' 错误解析及解决方法 (Jupyter Notebook)

原文地址: https://www.cveoy.top/t/topic/jPlS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录