我想将几个(比如 15 个)形状 (3072,) 的长数组组合成一个形状 (15,3072) 的 np.array。如果找到了解决方案,但是在 for 循环中包含嵌套的 if 子句,这对我来说似乎效率低下。是否有更有效的解决方案来提出必要形状的 numpy 数组(而不是列表)?这是代码:
# Creating sample array
arr1 = np.array([8, 19, 43], dtype=int)
# What I do at the moment (and it works)
arr_out = np.array([])
for i in range(3):
if i == 0:
arr_out = np.hstack((arr_out, arr1))
else:
arr_out = np.vstack((arr_out, arr1))
arr_out # Output is correct shape (Each "new" array gets a new row.)
数组([[8., 19., 43.], [8., 19., 43.], [8., 19., 43.]])
当我使用 np.append 时会发生什么:
# How to do the above without the if loop in the for loop?
arr_out = np.array([])
for i in range(3):
arr_out = np.append(arr_out, arr1, axis=0)
arr_out # Output is not in correct shape
数组([8., 19., 43., 8., 19., 43., 8., 19., 43.])
您是否看到任何不使用列表(或至少最终没有列表)的情况下获得第一个示例的 numpy.array 形状的有效方法?