有没有一种简单的方法可以在 python 中对稀疏矩阵进行洗牌?
这就是我洗牌非稀疏矩阵的方式:
index = np.arange(np.shape(matrix)[0])
np.random.shuffle(index)
return matrix[index]
我怎么能用 numpy sparse 做到这一点?
有没有一种简单的方法可以在 python 中对稀疏矩阵进行洗牌?
这就是我洗牌非稀疏矩阵的方式:
index = np.arange(np.shape(matrix)[0])
np.random.shuffle(index)
return matrix[index]
我怎么能用 numpy sparse 做到这一点?
好的,找到了。稀疏格式在打印输出中看起来有点混乱。
index = np.arange(np.shape(matrix)[0])
print index
np.random.shuffle(index)
return matrix[index, :]
如果有人希望从稀疏矩阵中随机获取行的子样本,这篇相关文章也可能很有用:我应该如何从 scipy.sparse.csr.csr_matrix 和列表中进行子采样
更好的方法可以是改组 CSR 矩阵的索引并获取矩阵的行,如下所示:
from random import shuffle
indices = np.arange(matrix.shape[0]) #gets the number of rows
shuffle(indices)
shuffled_matrix = matrix[list(indices)]