如何将Python字典转换为Numpy数组?



因此,Python的sklearn库中的逻辑回归具有.fit()函数,该函数以x_train(特征)和y_train(标签)作为参数来训练分类器。

似乎x_train.shape = (number_of_samples, number_of_features)

对于x_train,我应该使用提取的xvector。scp文件,我正在阅读如下:

b = kaldiio.load_scp('xvector.scp')

我可以像这样打印内容:

for file_id in b:
xvector = b[file_id]
print(xvector)

现在b变量就像一个字典,你可以得到相应id的x向量值。我想使用sklearn逻辑回归来对x向量进行分类,为了使用.fit()方法,我应该传递一个数组作为参数。

我的问题是如何使一个数组只包含xvector变量?

PS: file_ids大约有100万个,每个xvector的长度为512,对于数组来说太大了

似乎您正在尝试将字典存储到numpy数组中。如果字典比较小,可以直接将值存储为:

import numpy as np
x = np.array(list(b.values()))

但是,如果字典很大,这将遇到OOM问题。在这种情况下,您需要使用np.memmap,如下所示:https://ipython-books.github.io/48-processing-large-numpy-arrays-with-memory-mapping/

本质上,您必须一次向数组中添加一行,并在内存耗尽时刷新它。数组直接存储在磁盘上,因此它避免了OOM问题。

最新更新