将numpy数组导出到文本文件

将numpy数组导出到文本文件,numpy,Numpy,我有一段代码,它获取一个矩阵,并创建矩阵中每个元素的相邻邻域数组。这些元素是ID,我将使用它们作为在字典中查找值的键。“Hooked”极大地帮助了我以numpy格式编写这段代码。我想做的是将邻居列表导出到csv文件。下面代码中的writer.writerows命令有问题。我得到一个错误,一个序列是预期的。我相信这是因为它希望编写一个列表,其中我的输出格式在相邻列表之间没有任何逗号 代码的输出如下所示: [0.0.309.0.0.10.11.12] [0.309.310.0.1.11.12.13]

我有一段代码,它获取一个矩阵,并创建矩阵中每个元素的相邻邻域数组。这些元素是ID,我将使用它们作为在字典中查找值的键。“Hooked”极大地帮助了我以numpy格式编写这段代码。我想做的是将邻居列表导出到csv文件。下面代码中的writer.writerows命令有问题。我得到一个错误,一个序列是预期的。我相信这是因为它希望编写一个列表,其中我的输出格式在相邻列表之间没有任何逗号

代码的输出如下所示:

[0.0.309.0.0.10.11.12]

[0.309.310.0.1.11.12.13]

[309.310.311.0.2.12.13.14]

[310.311.312.1.3.13.14.15]

[311.312.313.2.4.14.15.16]

[312.313.314.3.5.15.16.17]

[313.314.315.4.6.16.17.18]

[314.315.316.5.7.17.18.19]

[315.316.317.6.8.18.19.20]

[316.317.318.7.9.19.20.21]

代码如下:

   from numpy import *
   import sys
   import csv

   k = 1

   #Create nearest neighbors
   Xidx, Yidx = mgrid[-k:k+1,-k:k+1]

   #Remove the center (0,0) index
   center = (Xidx==0) & (Yidx==0)
   Xidx = Xidx[~center]
   Yidx = Yidx[~center]

   data = loadtxt("H:\SWAT\NC\GRID_FIDS2.txt")
   #print data

   for dx in range(11):
       for dy in range(11):
           FID = data[dx,dy]
           #print FID
           NL = data[Xidx+dx,Yidx+dy]
           print NL
           f = open("H:\SWAT\NC\Pro_NL.txt", 'wt')
           try:
               writer=csv.writer(f)
               writer.writerows(NL)
           finally:
               f.close()
   '''
   dx,dy = 0,4
   print "Cell Value data[%i,%i] = %f " % (dx, dy, data[dx,dy])
   print "k=%i nearest neighbors: "%k, data[Xidx+dx, Yidx+dy]
   '''    
   '

理想情况下,我希望csv文件有一列包含所有FID值,第二列包含对应于FID值的邻居列表(NL)。我很感谢大家对这方面的意见…我整天都在测试不同的东西,但都没有成功

除了使用csv对象,您还可以按如下方式构造代码:

f=open("out_file","w")
...
for dx in range(11):
   for dy in range(11):
       FID = data[dx,dy]
       .....
       NL = data[Xidx+dx,Yidx+dy]
       f.write(str(NL))
f.close()

这么简单…啊!谢谢你的帮助,加上一点格式,看起来很棒!