如何将字符串列表与对应numpy数组合并后拼接为统一数组
实现方案
你可以通过np.full生成对应数量的名称列,再通过拼接操作完成需求,完整代码如下:
首先导入依赖并定义原始数据:
import numpy as np arrs = [np.array([[1.,0.,0.], [1.,1.,1.]]), np.array([[4.,4.,4.], [2.,4.,0.]]), np.array([[9.,0.,9.], [9.,7.,5.]])] names = ['group_A', 'group_B', 'group_H']
核心处理逻辑:
processed_list = [] for arr, group_name in zip(arrs, names): # 生成和当前数组行数一致的名称列 name_col = np.full((arr.shape[0], 1), group_name, dtype=object) # 按列拼接原数组和名称列 processed_arr = np.column_stack((arr, name_col)) processed_list.append(processed_arr) # 按行合并所有处理后的数组,放入列表得到最终结果 merged_arrs = [np.concatenate(processed_list, axis=0)]
说明
- numpy原生数组要求元素类型统一,因此拼接字符串后数组的dtype会自动转为
object,可以同时存储数值和字符串,和你预期的输出格式完全一致。 - 你可以直接打印
merged_arrs[0]验证结果是否符合需求。
内容的提问来源于stack exchange,提问作者Link_tester
相关产品推荐
相关产品推荐

