您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python 3.x的字典视图对象和matplotlib

Python 3.x的字典视图对象和matplotlib

错误的更多信息:

--> 512     return array(a, dtype, copy=False, order=order, subok=True)
    513 
    514 def ascontiguousarray(a, dtype=None):

TypeError: float() argument must be a string or a number, not 'dict_values'

因此,最小的示例是:

np.array(d.keys(),dtype=float)

没有dtype规范

In [16]: np.array(d.keys())
Out[16]: array(dict_keys([1, 3]), dtype=object)

dict_keys视为object。通常,您必须避免np.array将对象视为数字列表。

In [17]: np.fromiter(d.keys(),dtype=float)
Out[17]: array([ 1.,  3.])

np.fromiter可以处理d.keys(),并将其视为可迭代的。因此,关于如何fromiter处理不同于的可迭代对象,有一些细节np.array

生成器表达式的工作方式相同,例如(i for i in range(4))fromiter可以遍历它,array将其视为对象或引发错误

如果SO提到的所有错误归结为np.array(...)处理生成器,则可能只需进行一次numpy更改即可解决此问题。开发人员当然不希望调整可能接受列表的每个函数方法。但这感觉上是根本性的变化,必须进行彻底的测试。即使那样,它仍然可能产生向后兼容性问题。

一段时间以来,公认的修复方法是通过传递代码2to3

https://docs.python.org/2/library/2to3.html

对于字典:

修复字典迭代方法。dict.iteritems()转换为dict.items(),dict.iterkeys()转换为dict.keys(),dict.itervalues()转换为dict.values()。同样,dict.viewitems(),dict.viewkeys()和dict.viewvalues()分别转换为dict.items(),dict.keys()和dict.values()。它还在对列表的调用中包装了dict.items(),dict.keys()和dict.values()的现有用法

python 2022/1/1 18:49:33 有361人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶