【发布时间】:2016-11-07 00:43:35
【问题描述】:
这是我试图运行的代码,但我没有得到输出中的值,
import numpy
import geocoder
data = numpy.loadtxt(fname = 'Flywheel_SF.csv', delimiter = ',', dtype = numpy.ndarray)
start = list()
end = list()
z_code = numpy.zeros((101,2))
for i in range(1,101):
s = geocoder.google([data[i,4], data[i,5]], method='reverse')
e = geocoder.google([data[i,6], data[i,7]], method='reverse')
start.append(s.postal)
end.append(e.postal)
z_code[i,0] = s.postal
z_code[i,1] = e.postal
zipcode = [start, end]
print(z_code)
这是我得到的输出,
[[ 0. 0.]
[ nan nan]
[ nan nan]
[ nan nan]
[ nan nan]
....
....
[ nan nan]
[ nan nan]
[ nan nan]
[ nan nan]
[ nan nan]
[ nan nan]]
输出应该是这样的,这些是经纬度转换后的邮政编码
[[ 0. 0.]
[ 94105. 94103.]
[ 94133. 94108.]
[ 94133. 94133.]
[ 94114. 94122.]
[ 94104. 94128.]
[ 94128. 94066.]
......
......
[ 94128. 94066.]
[ 94118. 94116.]
[ 94109. 94102.]]
请帮忙,提前谢谢!
【问题讨论】:
-
您在阅读s.postal时是否检查了geocoder返回的数据类型?
-
"numpy.loadtxt([...], dtype = numpy.ndarray)" 不知你是否了解dtype的使用,去掉它试试。 “for i in range(1,101)”索引从 0 开始,使用 Numpy。如果你想跳过 Flywheel_SF.csv 中的标题行,你最好使用 numpy.loadtxt 的“skiprows”选项。
标签: python numpy google-geocoder