9

有没有一种简单的方法可以在 python 中对稀疏矩阵进行洗牌?

这就是我洗牌非稀疏矩阵的方式:

    index = np.arange(np.shape(matrix)[0])
    np.random.shuffle(index)
    return matrix[index]

我怎么能用 numpy sparse 做到这一点?

4

3 回答 3

15

好的,找到了。稀疏格式在打印输出中看起来有点混乱。

    index = np.arange(np.shape(matrix)[0])
    print index
    np.random.shuffle(index)
    return matrix[index, :]
于 2012-09-01T19:27:13.813 回答
1

如果有人希望从稀疏矩阵中随机获取行的子样本,这篇相关文章也可能很有用:我应该如何从 scipy.sparse.csr.csr_matrix 和列表中进行子采样

于 2016-03-18T14:11:32.423 回答
0

更好的方法可以是改组 CSR 矩阵的索引并获取矩阵的行,如下所示:

from random import shuffle
indices = np.arange(matrix.shape[0]) #gets the number of rows 
shuffle(indices)
shuffled_matrix = matrix[list(indices)] 
于 2019-01-22T22:46:03.317 回答