如何迭代 Python 中的 numpy 数组列表 3

How to Iterate over a list of numpy arrays in Python 3

我目前有一个 numpy 数组列表。这些数组包含二维点集。我想遍历此列表中的每个数组,因为根据数组的内容,可能会出现两种情况。我 运行 遇到的问题是,当我尝试像这样遍历列表时:

for array in list:

它迭代数组中的条目,而不是迭代数组本身。例如:

a = [array([[[1, 2]], [[3, 4]]], dtype=int32), array([[[5, 6]], [[7, 8)]]], dtype=int32)]
for array in a:
   print(array)

产量

1
2
3
4
5
6
7
8

当我期待

[[1, 2], [3, 4]]
[[5, 6], [7, 8]]

您可以使用numpy.squeeze删除一维并使用.tolist()以您想要的格式打印。

a = [array([[[1, 2]], [[3, 4]]], dtype=int32),array([[[5, 6]], [[7, 8]]], dtype=int32)]
for array in a:
  print(squeeze(array).tolist())

我认为您的结果需要每个数组上的括号太多

a = [array([[1, 2], [3, 4]], dtype=int32), array([[5, 6], [7, 8]], dtype=int32)]
for array in a:
   print(squeeze(array).tolist())

还在生产

[[1, 2], [3, 4]]
[[5, 6], [7, 8]]