【发布时间】:2019-03-05 11:15:23
【问题描述】:
当我尝试将多维列表转换为多维数组时,发生了一些奇怪的事情。 这是一个示例代码,它应该是什么样子以及我的目标是什么。这个例子有效:
array = [[1, 1], [2, 2]]
array = np.array(array)
print(array)
输出如预期:
[[1 1]
[2 2]]
现在我的代码出错了,我不知道为什么。我稍后需要用于 matplotlib 的 numpy 数组。 building_polygons 是一个多维数组。它包含一个多边形列表,其中每个多边形包含一个点列表,每个点都包含一个 x,y z 坐标。
all_poly_x = []
all_poly_y = []
all_poly_z = []
for polygon in building_polygons:
poly_x = []
poly_y = []
poly_z = []
for point in polygon:
poly_x.append(point[0])
poly_y.append(point[1])
poly_z.append(point[2])
poly_x.append(poly_x[0]) # closing polygon
poly_y.append(poly_y[0]) # closing polygon
poly_z.append(poly_z[0]) # closing polygon
all_poly_x.append(poly_x)
all_poly_y.append(poly_y)
all_poly_z.append(poly_z)
all_poly_x = np.array(all_poly_x)
all_poly_y = np.array(all_poly_y)
all_poly_z = np.array(all_poly_z)
执行 np.array(...) 命令时发生错误。不是像工作示例中所示创建一个 numpy 数组,而是创建以下示例,例如所有 x 值(我缩短了它):
[
list([388426.87, 388433.48, 388447.84, 388426.87, 388426.87])
list([388424.21, 388450.45, 388412.13, 388424.21, 388424.21])
...
list([388457.11, 388430.84, 388469.1, 388457.11, 388457.11])
list([388467.0, 388496.0, 388491.0, 388467.0, 388467.0])
]
那么为什么要创建一个带有列表对象的 numpy 数组呢?
【问题讨论】:
-
列表长度不同
-
啊该死的,谢谢