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.]

[ 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()

关于numpy - 将 numpy 数组导出到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270042/

相关文章:

python - 在opencv中向SVM提供输入时出现错误

python - numpy:对操作结果执行 "any"或 "all"的有效方法

python - 替换大于某个值的 Python NumPy 数组的所有元素

python - 如何获取 boolean numpy 数组和另一个 boolean 数组的相对补集?

python - SciPy中的指数曲线拟合

python - 序列化 `numpy.dtype` 对象 : human readable

python - python(numpy、scipy 等)中是否有 t 测试表?

python - 如何使用特定规则在 Python 中按元素比较两个数组?

python - 如何在 tensorflow 中索引并分配给张量?

python - savetxt 如何将类型从 float64 更改为 int 或 double