【发布时间】:2011-01-14 12:59:30
【问题描述】:
我想获取一个包含浮点数的字典,由整数索引并将其转换为 numpy.array 以与 numpy 库一起使用。目前我正在手动将值转换为两个数组,一个用于原始索引,另一个用于值。虽然我查看了numpy.asarray,但我的结论是我一定是做错了什么。谁能展示一个如何正确转换这种创作的例子?不用numpy.asarray,什么都行。
from collections import defaultdict
foo = defaultdict( lambda: defaultdict(float) )
#Then "foo" is populated by several
#routines reading results from a DB
#
#As an example
foo[ 7104 ][ 3 ] = 4.5
foo[ 203 ][ 1 ] = 3.2
foo[ 2 ][ 1 ] = 2.7
我想要一个多维浮点数组,而不是一个字典数组。
编辑:
抱歉耽搁了。这是我用来创建第一个仅包含值的数组对象的代码:
storedArray = numpy.asarray( reduce( lambda x,y: x + y, (item.values() for item in storedMapping.values() ) ) )
我希望有人可能知道可以将 dict 的 dict 转换为数组的灵丹妙药。
【问题讨论】:
-
我不清楚你到底从什么开始和想以什么结束。
-
很抱歉造成混乱。
-
所以您使用字典作为稀疏数组,并希望将它们转换为 numpy 数组,对吧?
-
是的,完全正确。不能保证数据库中包含的索引跨度为 1 到 N
-
指数总是非负数吗?
标签: python arrays dictionary numpy