修復 Python 中的 Unhashable Type numpy.ndarray 錯誤

Vaibhav Vaibhav 2022年5月18日
修復 Python 中的 Unhashable Type numpy.ndarray 錯誤

Python 字典是一種健壯且可擴充套件的資料結構,它以鍵值對的形式儲存資料。在鍵值對中,唯一的鍵指向某個值,並且對值是什麼沒有限制。值可以是整數、浮點數、布林值、數字列表、類物件、類物件列表、元組、字典等等。然而,金鑰的含義有一些限制。

金鑰的基本條件是它應該是一個可雜湊的物件。可雜湊物件是指一旦定義,在其生命週期內不能進一步修改或不可變的物件,可以用唯一的雜湊值表示。雜湊值是唯一的整數值。

intfloatstrtuple 等資料型別和類物件是不可變物件。這意味著它們可以安全地用作字典中的鍵。當我們不特別關注鍵的資料型別時,就會出現問題。例如,如果我們嘗試使用 listnumpy.ndarray 作為鍵,我們將遇到 TypeError: unhashable type: 'list'TypeError: unhashable type: 'numpy.ndarray'分別錯誤。

在本文中,我們將學習如何避免 NumPy 陣列出現此錯誤。

修復 Python 中的 unhashable type numpy.ndarray 錯誤

我們必須將 NumPy 陣列轉換為可以安全地用作修復此錯誤的關鍵的資料型別。而且,在陣列和列表的情況下,元組是要走的路。請參閱以下 Python 程式碼。

import numpy as np

dictionary = {}
n = np.array([1.234, 21.33, 3.413, 4.4, 15.0000])
n = tuple(n) # Conversion
dictionary[n] = "Hello World"
print(dictionary)

輸出:

{(1.234, 21.33, 3.413, 4.4, 15.0): 'Hello World'}

Python 的內建 tuple() 方法將為可迭代物件執行必要的轉換。

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub

相關文章 - Python Error