我有一个有形状的csr_matrix(40000000,1600000)。我使用以下方法来混洗这个矩阵:
<Project>
但是得到错误&#34;分段错误&#34;。
我在小csr_matrix上测试了这个shuffle方法,但它确实有效。 有谁知道如何解决它?
答案 0 :(得分:0)
这听起来像是一个记忆问题。我可以在我的机器上随机播放一个这样大小的矩阵。它花了大约2.5GB RAM。
如果从unix shell运行应用程序,则分段错误很可能是由于进程内存不足。但是,如果你是从python shell运行的,那么你应该得到一个MemoryError。
只需添加,您也可以使用sklearn.utils.shuffle
为您进行随机播放(请注意内存使用情况相同)。
from sklearn.utils import shuffle
csr_matrix_new = shuffle(csr_matrix)
答案 1 :(得分:0)
你知道`np.random.shuffle&#39;使用什么shuffle算法?
看看Fisher-Yates shuffle非常容易实现并做到了,所以应该防止分配任何额外的内存。