我目前正在努力解决一个可能相当简单的问题,但我无法理解它。
假设我有以下两个不同形状的二维数组,我可以使用以下方法将它们组合成一个新数组:
a = np.zeros((2, 3))
b = np.zeros((4, 5))
c = np.array([a, b])
print(c.shape)
# Output
# (2,)
for elements in c:
print(elements.shape)
# Output:
# (2, 3)
# (4, 5)
到目前为止,一切都很好!但是,如果我有一个必须迭代的大列表,我该怎么做呢?这是一个只有 4 个不同二维数组的简单示例:
这按预期工作:
a = np.zeros((2,3))
b = np.zeros((4,5))
c = np.zeros((6,7))
d = np.zeros((8,9))
e = np.array([a, b, c, d])
print(e.shape)
# Output
# (4,)
for elements in e:
print(elements.shape)
# Output
# (2, 3)
# (4, 5)
# (6, 7)
# (8, 9)
这不能按预期工作,我的问题是如何以迭代的方式做到这一点:
a = np.zeros((2,3))
b = np.zeros((4,5))
c = np.zeros((6,7))
d = np.zeros((8,9))
e = None
for elements in [a, b, c, d]:
e = np.array([e, elements])
print(e.shape)
# Output
# (2,) <--- This should be (4,) as in the upper example, but I don't know how to achieve that :-/
for elements in e:
print(elements.shape)
# (2,)
# (8, 9)
我知道在每次迭代中我只是组合两个数组,为什么它总是保持在 (2,) 的形状,但我想知道如何以一种优雅的方式完成。所以基本上我想要一个第三维来说明存储的数组的数量或数量。例如,如果我迭代 1000 个不同的二维数组,我希望其形状为 (1000,)
希望我的问题是可以理解的——如果不告诉我!非常感谢!