首页 > 解决方案 > 来自 scipy 稀疏矩阵的 python 样本

问题描述

我有一个 scipy 稀疏矩阵,例如:

import scipy as sp
from scipy import sparse
X = sparse.csr_matrix(np.random.randint(0, 10, (100, 10)))

我需要在K这个矩阵中添加行。这些新行的每一列都应该从原始矩阵的同一列中采样获得。

举个例子。期望的结果应该是这样的:

Z = np.concat(X, X_sampled, axis=0) 在哪里X_sampled[:,i] = np.random.choice(X[:,i], k)

在不移动到密集矩阵的情况下如何做到这一点?

编辑:一个密集数组的例子

import numpy as np                                                                                                                                                                                              
import scipy as sp                                                                                                                                                                                              

k = 20                                                                                                                                                                                                          
X = np.random.randint(0, 10, (100, 10))                                                                                                                                                                         
X2 =  np.zeros(shape=(k, X.shape[1]))                                                                                                                                                                           

for col_id in range(X.shape[1]):                                                                                                                                                                                
    X2[:, col_id] = np.random.choice(X[:, col_id], k)                                                                                                                                                           
res = np.concatenate([X, X2]) 

标签: pythonnumpysparse-matrix

解决方案


推荐阅读