Я хотел бы взять словарь из словаря, содержащего числа с плавающей запятой, проиндексированные по целым числам и преобразовать его в массив 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
Мне бы хотелось иметь только многомерный массив с плавающей точкой, а не массив диктов.
Edit:
Извините за задержку. Вот код, который я использовал для создания первого объекта массива, содержащего только значения:
storedArray = numpy.asarray( reduce( lambda x,y: x + y, (item.values() for item in storedMapping.values() ) ) )
Я надеялся, что кто-то может знать магическую пулю, которая может преобразовать диктовку в массив.