Convert a deafultdict to numpy matrix or a CSV of 2D Matrix
我有一个
现在有一些标准函数可以将这个
如果不可能,是否有任何标准函数可以将 defaultdict 转换为 CSV,以便我可以使用 numpy 加载 csv。
编辑 - 我找到了使用 pandas 的解决方法。我将 defaultdict 转换为 DataFrame,然后将 DF 转换为 numpy 矩阵。还有比这更好的方法吗?
但遗憾的是,这对节省内存没有帮助。
假设您的数据如下所示:
1 2 3 | data = defaultdict(int) data[0,0] = 10 data[1,1] = 100 |
你想使用
1 2 3 4 5 | items = list(data.items()) # list only needed for python3 vs = [v for (i,j), v in items] ii = [i for (i,j), v in items] j j= [j for (i,j), v in items] matrix = scipy.sparse.coo_matrix((vs, (ii, jj)) |
这给出了稍微奇怪的输出:
1 2 3 | >>> print matrix (0, 0) 10 (1, 1) 100 |
但是你可以把这个对象当作一个密集矩阵来处理