【问题标题】:Trouble writing sparse matrix to csv将稀疏矩阵写入 csv 时遇到问题
【发布时间】:2014-09-27 14:30:03
【问题描述】:

我是 Python 的新手,我正在尝试将矩阵中的数据写入 CSV 文件。变量定义为:

(Pdb) trainFeatures
<1562936x312116 sparse matrix of type '<type 'numpy.float64'>'
with 43753231 stored elements in Compressed Sparse Row format>

我有一行代码:

numpy.savetxt("feature_train.csv", trainFeatures, delimiter=',')

当我运行该行时,我收到一条错误消息:

ncol = X.shape[1]
IndexError: tuple index out of range

我确定矩阵的格式不正确,但我不知道如何得到它。谁能指出我需要在这里做什么?

【问题讨论】:

  • 你试过 trainFeatures.todense() 吗?
  • 这确实有效,但由于其庞大的大小,生成的矩阵无法放入内存中。确保你回答了问题,这样你才能获得功劳。
  • 稀疏矩阵将其数据保存在 numpy 数组中,但本身不是 numpy 数组。所以(普通香草)numpy.savetxt 函数无法保存它。您要么必须在scipy 中找到一个知识渊博的稀疏savetxt,要么自己保存矩阵的组件。 scipy.io 可以将备用矩阵保存在 MATLAB 兼容文件中。

标签: python python-2.7 csv numpy export-to-csv


【解决方案1】:

好的,完成这个过程,原问题的答案是使用 todense() 方法将 trainFeatures 转换为 savetxt() 识别的格式。但要进一步评论内存不足,显而易见的解决方案是使用 getrow() 方法并遍历所有行并将每一行单独写入文件,而不是尝试一次性完成整个矩阵。

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 2020-07-02
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2023-03-17
    • 2010-12-28
    • 2014-08-17
    相关资源
    最近更新 更多