使 numpy 数组可散列的一种方法是将其设置为只读。这在过去对我有用。但是当我在一个元组中使用这样一个 numpy 数组时,整个元组不再是可散列的,我不明白。这是我放在一起来说明问题的示例代码:
import numpy as np
npArray = np.ones((1,1))
npArray.flags.writeable = False
print(npArray.flags.writeable)
keySet = (0, npArray)
print(keySet[1].flags.writeable)
myDict = {keySet : 1}
首先,我创建一个简单的 numpy 数组并将其设置为只读。然后我将它添加到一个元组并检查它是否仍然是只读的(它是)。
当我想将元组用作字典中的键时,出现错误TypeError: unhashable type: 'numpy.ndarray'
。
这是我的示例代码的输出:
False
False
Traceback (most recent call last):
File "test.py", line 10, in <module>
myDict = {keySet : 1}
TypeError: unhashable type: 'numpy.ndarray'
我可以做些什么来使我的元组可散列,为什么 Python 首先会显示这种行为?