【发布时间】:2017-02-02 03:30:09
【问题描述】:
我对 Python numpy 还是很陌生。我试图在我的一个函数中使用 numpy 数组作为字典中的键,然后 Python 解释器告诉我 numpy 数组不可散列。我刚刚发现解决此问题的一种方法是使用 repr() 函数将 numpy 数组转换为字符串,但这似乎非常昂贵。有没有更好的方法来达到同样的效果?
更新:我可以创建一个新类来包含 numpy 数组,这似乎是实现我想要的正确方法。只是想知道有没有更好的方法?
更新2:使用一个类来包含数组中的数据,然后覆盖__hash__ 函数是可以接受的,但是,我更喜欢@hpaulj 提供的解决方案。将array/list 转换为tuple 以更好的方式满足我的需要,因为它不需要额外的课程。
【问题讨论】:
-
你在做什么,你想使用一个 numpy 数组(无论它是什么形式)作为字典键?
-
您可以使用 numpy 数组中的数据创建一个
hash,它可以用作字典的键。 -
@JonClements 我需要一个字典来将一维向量映射到一组点
-
@ZdaR 会尝试的。干杯
-
试试
tuple(A.tolist())。对于一维数组,这种转换是直截了当的。
标签: python arrays numpy dictionary