Python将defaultdict(lambda:defaultdict(dict))转换为numpy数组

Python将defaultdict(lambda:defaultdict(dict))转换为numpy数组,python,arrays,numpy,dictionary,defaultdict,Python,Arrays,Numpy,Dictionary,Defaultdict,我有这两本字典: alpha[worker] = {'A3M34FQ1OVNWPG': 1, 'AZH91RXTSG1NZ': 1, 'AHJGJ2J15SEHY': 1, 'A2IR6T0Y2MSDYD': 1, 'AGV7F8F0IV2MY': 1} beta[example] = {'107_1108_0': 1, '953_1938_1': 1, '329_2157_0': 1, '411_1794_0': 1, '965_1633_0': 1 然后我用defaultdict(lamb

我有这两本字典:

alpha[worker] = {'A3M34FQ1OVNWPG': 1, 'AZH91RXTSG1NZ': 1, 'AHJGJ2J15SEHY': 1, 'A2IR6T0Y2MSDYD': 1, 'AGV7F8F0IV2MY': 1}
beta[example] = {'107_1108_0': 1, '953_1938_1': 1, '329_2157_0': 1, '411_1794_0': 1, '965_1633_0': 1
然后我用
defaultdict(lambda:defaultdict(dict))计算
gamma[worker][example]
。我首先使用一个函数来初始化值,然后使用另一个函数来更新值,但是在update函数中,计算要花很长时间才能完成,这就是为什么我想找到一种更快的方法来完成,将嵌套的dict转换为numpy数组。有人能给个提示吗

以下是迄今为止的代码:

α、β、γ的初始化 def初始αβγ(自身): α={} β={} gamma=defaultdict(lambda:defaultdict(dict)) 对于self.w2el.keys()中的工作者: 阿尔法[工人]=1 例如,在self.e2wl.keys()中: beta[示例]=1 对于self.w2el.keys()中的工作者: 例如,在self.e2wl.keys()中: gamma[worker][example]=1 返回alpha,beta,gamma
def更新_alpha_beta_gamma(自):
#[a1、a2、…、aN、…、b1、b2、…、bM、…、g11、g12、g13、…、gNM]存储在x0中
x0=[]
对于在self.workers中的工作人员:
x0.append(self.alpha[worker])
例如,在self.examples中:
x0.append(self.beta[示例])
对于在self.workers中的工作人员:
例如,在self.examples中:
追加(self.gamma[worker][example])#TODO:转换为numpy数组

字典必须逐个键访问,因此很难快速完成任何事情(在
numpy
矢量化意义下)。如果您可以将字典转换为列表,例如使用
list(dd.keys())
(或
)可以更快地完成某些操作。
np.array
的核心功能是将列表或嵌套列表转换为数组。@hpaulj谢谢。你能说得更清楚一点吗?我应该在哪个函数中将字典转换为列表?正确的方法是什么?另外,如果为了加快计算速度,有np.array的替代方案,请告诉我