如果我有一個像這樣的字典: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]])

叮當貓咪
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]])
添加回答
舉報
0/150
提交
取消