为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

DIEA 2021-04-26 21:17:51
如果我有一个像这样的字典: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或任何循环?
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以像这样堆叠字典的值:


arr = np.stack(sam.values())


>>> arr

array([[1, 2, 3, 4],

       [2, 4, 6, 8]])


查看完整回答
反对 回复 2021-05-11
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

除非您使用的是Python 3.7+,否则不认为字典是有序的。因此,这很麻烦,但可能。想法是dict.items按键排序以给出元组列表,然后提取值。


from operator import itemgetter as iget


res = np.array(list(map(iget(1), sorted(sam.items(), key=iget(0)))))


array([[1, 2, 3, 4],

       [2, 4, 6, 8]])


查看完整回答
反对 回复 2021-05-11
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号