[英]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.