Python中如何用Numpy合并形状为(320,1)和(850,1)的两个数组
Numpy形状为(320,1)和(850,1)的数组合并方案
你用np.append报错大概率是没有指定axis参数,或者参数设置错误:np.append默认axis=None,会先把两个数组全部扁平化后再拼接,如果你误设axis=1的话,需要两个数组第一维度(行数)一致,而320≠850自然会报错。
以下是3种可行的合并方案,默认你需要的是按行拼接得到形状为(1170, 1)的列向量,这也是这类形状数组的常规合并需求:
- 方案1:使用
np.concatenate(最通用的拼接方法,支持多数组、多维度自定义拼接)
import numpy as np # 假设你的两个数组分别为arr1和arr2 merged_arr = np.concatenate([arr1, arr2], axis=0)
- 方案2:使用
np.vstack(专门用于垂直方向按行堆叠,不需要手动指定axis)
merged_arr = np.vstack([arr1, arr2])
- 方案3:坚持用
np.append的正确写法
merged_arr = np.append(arr1, arr2, axis=0)
注意:如果你需要横向拼接两个数组,需要先把两个数组的行数调整为一致,否则无论用什么方法都会报错,因为形状不匹配。
内容的提问来源于stack exchange,提问作者Velaria Lim
相关产品推荐
相关产品推荐

