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

如何在Python 3中迭代numpy数组列表,python,python-3.x,numpy,numpy-ndarray,Python,Python 3.x,Numpy,Numpy Ndarray,我目前有一个numpy阵列列表。这些阵列包含一组二维点。我想对列表中的每个数组进行迭代,因为根据数组的内容,可能会出现两种情况。我遇到的问题是,当我尝试像这样迭代列表时: 对于列表中的数组: 它迭代数组中的条目,而不是迭代数组本身。例如: a = [array([[[1, 2]], [[3, 4]]], dtype=int32), array([[[5, 6]], [[7, 8)]]], dtype=int32)] for array in a: print(array) 屈服 1 2

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

对于列表中的数组:

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

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())

您可以使用
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]]

我认为每个数组上都有一个过多的括号,这是结果所需要的

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]]

对不起,我无法复制。这是我的代码,我得到了您期望的输出。将numpy作为np a=[np.array([[[1,2]],[[3,4]]、dtype=np.int32)、np.array([[5,6]]、[[7,8]]、dtype=np.int32])导入a中的i:print(i)[[1 2][[3 4]][[5 6][[7 8]]修复您给出的示例中的语法错误后,我无法复制您所描述的内容。请注意,不要从np导入名称,特别是如果你想把它们用于其他变量。在示例中为a:中的数组写入
,将使
数组
停止引用Numpy类型,并将打乱后续代码。很抱歉,我无法复制。这是我的代码,我得到了您期望的输出。将numpy作为np a=[np.array([[[1,2]],[[3,4]]、dtype=np.int32)、np.array([[5,6]]、[[7,8]]、dtype=np.int32])导入a中的i:print(i)[[1 2][[3 4]][[5 6][[7 8]]修复您给出的示例中的语法错误后,我无法复制您所描述的内容。请注意,不要从
np导入名称,特别是如果你想把它们用于其他变量。在示例中为a:中的数组编写
,会使
数组
停止引用Numpy类型,并会弄乱后续代码。