【问题标题】:np.array() creates array of list-objects when given a multidimensional array, but should create 'normal' arraynp.array() 在给定多维数组时创建列表对象数组,但应创建“正常”数组
【发布时间】: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 数组呢?

【问题讨论】:

  • 列表长度不同
  • 啊该死的,谢谢

标签: python arrays numpy


【解决方案1】:

由于 hpaulj 伤心,列表的长度不同。这让我很困惑。我没有想到这一点。感谢您的遮阳篷。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2018-04-14
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多