我正在使用python 3.6。
array(['0', '1', '2', ..., '3304686', '3304687', '3304688'],
dtype='<U7')
我有另一个字典B = {1:'012',2:'023',3:'045',..... 3304688:'01288'}
我想检索B的每个值,并通过提供A作为B的键来将其存储在另一个Numpy数组中。我打算以这种方式尝试
z_array = np.array([])
for i in range(a.shape[0]):
z=b[i]
z_array=np.append(z_array,z)
但是看着A的形状,我觉得这会很耗时。您能建议我一些替代方法,这将是有效的吗?
您可以使用np.frompyfunc
,请注意,这将创建一个对象数组。
b = {str(i): i**3 for i in range(10**7)}
a = [str(i) for i in range(10**7)]
c = np.frompyfunc(b.__getitem__, 1, 1)(a)
或
c = np.frompyfunc(b.get, 1, 1)(a)
指示None
的丢失键。
在示例中,有10,000,000个项目,而许多查找仅需一两秒钟。(创建a
和b
需要更长的时间)