微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从python中的numpy.array字典中获取密钥

如何解决如何从python中的numpy.array字典中获取密钥

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

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

我想获取特定值的键,例如:[11,0,2,0]。所以,我写了这段代码

print(list(a_dictionary.keys())[list(a_dictionary.values()).index([11,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,2,0]),1: np.array([  2,1,100]),1: np.array([  5,10,100])}

value_to_search=[11,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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。