我有一个像这样的 numpy 数组:
arr = np.array([[[0,0],[93]],[[2,8],[94]]])
我现在想像这样定义两个变量 a 和 b:
a = 2
b = 8
现在,我想编写一个程序,从 numpy 数组中检索与 [a,b] 对应的值。在本例中,该值为 94。
我该如何解决这个问题?只要解决方案是最佳的,我也愿意接受其他组织数据的方式(列表、字典等)。但是,我想保留数组中条目的当前格式,即 ([inp,inp],[out])
到目前为止,我已经尝试使用 np.where 但它返回一个空数组:
np.where(arr == [2,8])
>>> (array([], dtype=int64), array([], dtype=int64))
如上所述,你很难比普通的 Python 字典做得更好:
x = {(0, 0): [93], (2, 8): [94]}
a = 2
b = 8
x[(a, b)] # [94]
为此,键必须是元组或其他可哈希类型。如果这在您的应用程序中不起作用,请将该信息添加到您的问题中。有关为什么字典非常适合此操作以及为什么密钥需要可散列的更多信息,请参阅例如这里。