将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] 代码如下:将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]
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()
这么简单…啊!谢谢你的帮助,加上一点格式,看起来很棒!