【发布时间】:2015-03-20 16:41:25
【问题描述】:
我有一个由 (doc here) 创建的 38 个 (x,y) 坐标的一维 numpy 数组:
npArray = arcpy.da.FeatureClassToNumPyArray(fc,["SHAPE@XY"])
这会输出一个 (38,) 数组,例如:
[([X1, Y1],)
([X2, Y2],)
...
([X38, Y38],)]
edit:这里是实际输出的前 5 行,以及 dtype:
[([614276.776070848, 6086493.437772478],)
([626803.3576861953, 6101090.488548568],)
([627337.6049131282, 6100051.791447324],)
([627340.8526022129, 6099601.263191574],)
([629011.3422856168, 6099079.306533674],)
dtype([('SHAPE@XY', '<f8', (2,))])
但我想要一个 (38,2) 数组,例如:
[(X1, Y1)
(X2, Y2)
...
(X38, Y38)]
我该如何做到这一点?
我试过了
numpy.reshape(npArray, (-1,2))
但这会将坐标对重新排列为 (19,2) 数组。
【问题讨论】:
-
您的示例向量令人困惑(逗号/括号对我来说没有任何意义)。你能粘贴
print(npArray)的实际输出吗? -
这看起来像一个结构化数组。
dtype是什么? -
@agomcas 这是合法的。括号显示在每个元组中,只有一个数组作为唯一元素,其中包含 x,y 坐标。不过很奇怪。
-
@hpaulj ive 已编辑以包含 dtype: dtype([('SHAPE@XY', '
-
@HuStmpHrrr 确实很奇怪。如果我尝试创建一个这样的数组,由于元组之间缺少逗号,我无法通过第一个元素。 (然后解释器假设我正在尝试 call tuple1(tuple2) )所以我猜这是某种奇怪的打印输出......
标签: python arrays numpy reshape