首页 > 解决方案 > 在python中加载稀疏数据数组

问题描述

我有多个由采样数据组成的文件,每个文件都包含 x,y 坐标和变量的值。我怎样才能将这些数据加载为稀疏数组(或矩阵),其中每个样本都位于其在数组中的位置并且中间有空单元格?

例如,在此处输入图像描述

标签: pythonarraysnumpyjupytersparse-matrix

解决方案


输入有点不清楚(我认为你已经混淆了基于 0 的索引),但你可以强制它们进入这种形式并得到你想要的。

import numpy as np
from scipy.sparse import coo_matrix

row  = np.array([0, 1, 2, 1])
col  = np.array([0, 1, 1, 3])
data = np.array([1, 2, 0.5, 3])
coo_matrix((data, (row, col)), shape=(4, 4)).toarray()
array([[1. , 0. , 0. , 0. ],
       [0. , 2. , 0. , 3. ],
       [0. , 0.5, 0. , 0. ],
       [0. , 0. , 0. , 0. ]])

有关更多示例,请参见https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html#scipy.sparse.coo_matrix


推荐阅读