如何使用字典的值制作一个numpy数组?

如果我有一个像这样的字典:

sam = {1:np.array([1,2,3,4]), 2:np.array([2,4,6,8]) }

我如何用这样的字典值制作一个numpy数组?

arr = ([[1,2,3,4], 
        [2,4,6,8]])

我以为np.fromiter(sam.values(), dtype=np.int16)可能有用,但由于它的dtype而不起作用。

是否有任何功能可以执行此操作,而不是使用for或任何循环?


DIEA
浏览 208回答 2
2回答

慕妹3146593

您可以像这样堆叠字典的值:arr = np.stack(sam.values())>>> arrarray([[1, 2, 3, 4],       [2, 4, 6, 8]])

叮当猫咪

除非您使用的是Python 3.7+,否则不认为字典是有序的。因此,这很麻烦,但可能。想法是dict.items按键排序以给出元组列表,然后提取值。from operator import itemgetter as igetres = np.array(list(map(iget(1), sorted(sam.items(), key=iget(0)))))array([[1, 2, 3, 4],       [2, 4, 6, 8]])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python