このコードでは、行列をとり、行列の各要素の隣接する隣り合った配列を作成します。要素は、辞書の値を参照するためのキーとして使用するIDです。 「フックド」は、このコードをnumpy形式で書いてくれたことを大いに助けました。私がしたいことは、近隣リストをcsvファイルにエクスポートすることです。以下のコードでwriter.writerowsコマンドに問題があります。私は、シーケンスが期待されるというエラーを得る。私は、これは、出力フォーマットが隣人のリストの間にカンマを持たないリストのリストを書こうとしているからだと思います。numpy配列をテキストファイルにエクスポート
コードからの出力は次のようになります。
[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.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値を持つ1つの列であり、2番目の列はFID値に対応するNeighbor List(NL)です。私はこれについての入力を感謝します...私は一日中成功していない別のものをテストしてきました!
そう簡単な...ぐふっ!あなたの助けてくれてありがとう、ちょっとした書式でそれは素晴らしいよ! – Linda