如何迭代 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]]
我目前有一个 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]]