我有一组长度为3的NumPy数组。 E.g:
[ [0,0,0], [0,0,1], [0,0,2], [0,1,0],[0,1,1],... ]
对于这些NumPy数组中的每一个,我想存储一个不断更新的列表,并以某种方式链接到特定的NumPy数组。
例如,如果对于我的NumPy数组[0,0,1]
,我有一个相应的列表[1,1,1,1,0,-1,-1,1,1,1]
,我将如何将NumPy数组映射到此列表。
我考虑过使用字典,但Python似乎不允许将NumPy数组用作字典中的键。
显然,我有200个NumPy数组,我将其视为特定问题的状态。这些状态被指定为三元组,我使用的是NumPy数组。这是我的问题的要求。这些状态中的每一个都有一组奖励,我目前将其用作列表。
因此,我需要将每个州表示链接到该州的奖励列表。任何帮助都会很棒。
答案 0 :(得分:2)
正如@chepner所提到的,你永远不能使用numpy数组作为键,因为它们是可变的。要解决您的问题,您可以尝试使用词典字典。格式可能是一个很长的路线:
{'000': {state: [0,0,0], rewards: [1,1,1,1,0,-1,-1,1,1,1]},
'001': {state: [0,0,1], rewards: [1,1,1,1,0,-1,-1,1,1,1]}, ...}
通过这种方式,您可以将所有内容保持为所需的格式,循环播放,并将状态和奖励捆绑在一起。请注意,我选择了键作为状态的字符串版本,但是你可以做出对你的特定问题有意义的任何事情。