这里的第一个问题。我会尽量简洁。
我正在为机器学习应用程序生成包含特征信息的多个数组。由于数组的维度不同,我将它们存储在字典而不是数组中。有两种不同的功能,所以我使用了两个不同的字典。
我还生成标签以配合功能。这些标签存储在数组中。此外,还有一些字符串包含用于运行脚本的确切参数和时间戳。
总而言之,它看起来像这样:
import numpy as np
feature1 = {}
feature2 = {}
label1 = np.array([])
label2 = np.array([])
docString = 'Commands passed to the script were...'
# features look like this:
feature1 = {'case 1': np.array([1, 2, 3, ...]),
'case 2': np.array([2, 1, 3, ...]),
'case 3': np.array([2, 3, 1, ...]),
and so on... }
现在我的目标是这样做:
np.savez(outputFile,
saveFeature1 = feature1,
saveFeature2 = feature2,
saveLabel1 = label1,
saveLabel2 = label2,
saveString = docString)
这似乎可行(即这样的文件被保存而没有抛出错误并且可以再次加载)。但是,当我尝试再次从文件中加载功能时:
loadedArchive = np.load(outFile)
loadedFeature1 = loadedArchive['saveFeature1']
loadedString = loadedArchive['saveString']
然后,我没有得到字典,而是得到一个形状为 (0) 的 numpy 数组,我不知道如何访问其中的内容:
In []: loadedFeature1
Out[]:
array({'case 1': array([1, 2, 3, ...]),
'case 2': array([2, 3, 1, ...]),
..., }, dtype=object)
字符串也变成数组并得到一个奇怪的数据类型:
In []: loadedString.dtype
Out[]: dtype('|S20')
简而言之,我假设这不是正确完成的方式。但是,我不希望将所有变量放入一个大字典中,因为我将在另一个进程中检索它们,并且只想循环遍历 dictionary.keys() 而不必担心字符串比较。
任何想法都非常感谢。谢谢