我在csv文件中有40,000行和5000列布尔值(1和0)的数据集。我无法将其加载到numpy中,因为它会抛出MemoryError
。
我尝试将其加载到稀疏矩阵中,如此问题所述:csv to sparse matrix in python
但是这种格式不能用于scikit-learn。有没有办法在csv中读取稀疏矩阵,实际上scikit-learn可以使用它?
直接在矩阵中加载到numpy是通过:
完成的matrix = np.loadtxt('data.csv', skiprows=1, delimiter=',')
答案 0 :(得分:1)
您提供的问题中的答案产生了一个lil_matrix。根据scipy docs here,您可以调用matrix.tocsr()
将其转换为csr_matrix。这应该适用于允许使用稀疏矩阵的sklearn例程。将数据直接读入csr_matrix会更优雅,但对于布尔值的数据集,这应该可以正常工作。