首页 > 解决方案 > 合并 NumPyarrays

问题描述

我希望将列表中的 NumPy 数组元素合并到单个 NumPy 数组中。我怎样才能做到这一点?

这就是包含数组的列表的结构和我尝试的代码:

import numpy as np

baked_quad_vertices = []

A = (1,2,3,4,5,
     1,2,3,4,5,
     1,2,3,4,5,
     1,2,3,4,5)
A = np.array(A, dtype=np.float32)

B = (1,2,3,4,5,
     1,2,3,4,5,
     1,2,3,4,5,
     1,2,3,4,5)
B = np.array(B, dtype=np.float32)

baked_quad_vertices.append(A)
baked_quad_vertices.append(B)

Z = baked_quad_vertices
Z = np.vstack(Z)
print(Z)

我得到:

[[1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5.]
 [1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5.]]

我想:

[1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5.
 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5.]

最理想的情况是:

[1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5.
 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5., dtype=np.float32]

标签: pythonarraysnumpymergearray-merge

解决方案


要获得您想要的结果,请尝试使用np.hstack而不是np.vstack.


编者注:下面的原始答案是指问题的修订版 1

这看起来是错误的,因为每个 numpy 数组仍然是分开的,... 是什么意思?

事实上,当你打印一个数组时,它看起来就像那样。的输出np.vstack返回一个数组,所以你应该有一个数组。尝试打印:

print(type(baked_quad_vertices[chunk_count]))

推荐阅读