簡體   English   中英

如何從 python 中的 numpy.array() 字典中獲取密鑰

[英]How do I get the key from dictionary of numpy.array() in python

我有一本以 numpy.array() 作為值的字典:

dictionary = {0: array([11,  0,  2,  0]), 1: array([  2,   0,   1, 100]), 1: array([  5,   10,   1, 100])}

我想獲得特定值的鍵,例如:[11, 0, 2, 0]。 所以,我寫了這段代碼:

print(list(a_dictionary.keys())[list(a_dictionary.values()).index([11,  0,  2,  0])]) 

但它給了我一個錯誤: ValueError: 具有多個元素的數組的真值不明確。 使用 a.any() 或 a.all()

如何處理? 有沒有其他方法可以在字典中獲取特定列表值的鍵?

您可以使用np.array_equal來檢查兩個 numpy 數組是否相等。 如果元素匹配,以下代碼將key_needed設置為字典中的鍵,如果該 numpy 數組中沒有值key_needed將為None

如果有多個鍵具有相同的 numpy 數組,這將只返回第一次出現。

import numpy as np

d={0: np.array([11,  0,  2,  0]), 1: np.array([  2,   0,   1, 100]), 1: np.array([  5,   10,   1, 100])}

value_to_search=[11, 0, 2, 0]

value_to_search=np.array(value_to_search)

key_needed=None

for key in d:
    if np.array_equal(d[key],value_to_search):
        key_needed=key
        break

print(key_needed) # 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM