Python中:如何将稀疏矩阵写入csv文件?

Python中:如何将稀疏矩阵写入csv文件?,python,excel,csv,matrix,matplotlib,Python,Excel,Csv,Matrix,Matplotlib,我是Python的新手。我得到了一个脚本,它生成随机数并将它们放入126x81稀疏矩阵中。我想生成一个csv文件,文件名为:Cell_ID单元格X单元格YVal。单元X和Y当然是每个单元的坐标。我的脚本有一个循环,它生成了一个“outputs.csv”文件,但其中的数据并没有按我所希望的方式显示(每行的开头/结尾都有方括号,有些值用省略号[…])。总而言之,我无法阅读矩阵的全部内容 如果可以的话,我会上传一张图片,向你们展示我希望这些数据在记事本或Excel中读取时的样子,但我不允许这样做。但是

我是Python的新手。我得到了一个脚本,它生成随机数并将它们放入126x81稀疏矩阵中。我想生成一个csv文件,文件名为:Cell_ID单元格X单元格YVal。单元X和Y当然是每个单元的坐标。我的脚本有一个循环,它生成了一个“outputs.csv”文件,但其中的数据并没有按我所希望的方式显示(每行的开头/结尾都有方括号,有些值用省略号[…])。总而言之,我无法阅读矩阵的全部内容

如果可以的话,我会上传一张图片,向你们展示我希望这些数据在记事本或Excel中读取时的样子,但我不允许这样做。但是,这些数据应该看起来像一个典型的csv文件,每个值在其列下对齐。
谢谢你们的帮助,伙计们!:)

因为标准库支持csv,所以让我们使用它:

import numpy
import csv

N = 126
M = 81

g = numpy.random.rand(N, M)

with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['x', 'y', 'value'])
    for (n, m), val in numpy.ndenumerate(g):
        writer.writerow([n, m, val])

您应该包含更多的代码。例如,什么是
g
?此外,在写入文件时,变量
m
n
似乎超出范围。
g
是我的矩阵。
m
n
值与您在第一行中看到的
140
100
不对应-我被告知此脚本使用缩小的窗口来分配和打印值。请定义
g
。至少告诉我们它是什么类型的。也许你的问题可以通过修正这一行来解决:
val=g[m:n]
val=g[m,n]
(但这是一个猜测)。下面的行
outputFile.write(…
显然有错误的缩进。
g=gauss\u kern(n,sizey=ny)
。这就是你想知道的吗?不,因为我不知道什么是
gauss_kern
,这一点都没有帮助。我猜
g
是一个
numpy.ndarray
。如果是的话,我上面的建议应该可以解决这个问题。谢谢,尽管添加这些行会生成一个csv文件,当用记事本打开时,会显示停止ped在N=139处。我怎样才能使它在N=125处停止?(如果N从0开始,那当然是126列)。你的意思是在你的代码中还是在我的代码中?我建议在写之前检查g的形状。枚举不太可能出错。