TypeError: unhashable type: 'numpy.ndarray'
这个错误信息表明你在尝试对一个 numpy.ndarray
类型的对象进行哈希操作,但 numpy.ndarray
是不可哈希的。哈希操作通常用于字典的键或集合的元素,因为这些数据结构需要能够快速查找和比较元素。
numpy.ndarray
等。当你尝试将 numpy.ndarray
用作字典的键或集合的元素时,就会触发这个错误。
以下是一个完整的示例,展示了如何将 numpy.ndarray
转换为可哈希类型并使用:
import numpy as np
# 创建一个 numpy 数组
arr = np.array([1, 2, 3])
# 将数组转换为元组
hashable_arr = tuple(arr)
# 使用转换后的元组作为字典的键
my_dict = {hashable_arr: 'value'}
print(my_dict)
# 或者使用数组的内存地址作为键
unique_id = id(arr)
my_dict = {unique_id: arr}
print(my_dict)
# 自定义哈希函数
def array_hash(arr):
return hash(arr.tobytes())
my_dict = {array_hash(arr): 'value'}
print(my_dict)
通过这些方法,你可以避免 TypeError: unhashable type: 'numpy.ndarray'
错误,并正确地在字典或集合中使用数组。
领取专属 10元无门槛券
手把手带您无忧上云