带NumPy的浮点参数和dict_值

2024-10-01 11:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

主要问题是python3告诉我,dict_values被用作参数,而显然,需要一个字符串或数字。(即使一个float是一个数字,或者我是这么想的。)

我为这个问题寻找了各种各样的解决方案,虽然我看到一些方面似乎暗示着可以做些什么,但没有什么东西能以一种我可以概括到我的具体情况的方式说出来。在

代码是:

def get_features(self, state, action):
    q_state = np.array(SimpleExtractor().get_features(state, action).values()).astype(dtype=float)
    return q_state

在执行代码时返回以下错误:

^{pr2}$

根据其中一个建议的解决方案,我试图更改np行,以便将dtype显示为:

def get_features(self, state, action):
    q_state = np.array(SimpleExtractor().get_features(state, action).values(), dtype=float)
    return q_state

但是,它返回完全相同的错误。在

我不确定这是否重要,但我调用的SimpleExtractor是一个很大的代码:SimpleExtractor

我有一些理由相信,这段代码在编写时可以在python2上运行。但是我所从事的特定项目已经被重组为使用python3,因此我不能再使用python2运行它来测试它。在

我认为这可能与features变量如何从SimpleExtractor中的get_features方法返回有关。但我不清楚我会做些什么,使之成为我上面的代码可以接受的形式。在

我主要是想了解在这种情况下我应该怎么做。在


Tags: 代码selfgetdefnpaction数字解决方案
1条回答
网友
1楼 · 发布于 2024-10-01 11:19:40

首先将dict_values对象转换为list,以便从列表的内容创建数组。NumPy无法从dict_values生成包含项的数组,而是创建一个object类型的数组,并将dict_values对象放入其中:

>>> np.array(d.values())
array(dict_values([2, 4]), dtype=object)

你在做什么:

^{pr2}$

你应该做什么:

>>> np.array(list(d.values())).astype(float)
array([ 2.,  4.])

q_state =  np.array(list(SimpleExtractor().get_features(state, action).values()))\
                                          .astype(dtype=float)

相关问题 更多 >