在NumPy数组中合并字符串的最优方法是什么?
问题:Numpy数组按行拼接字符串的高效向量化实现
给定Numpy数组:
import numpy as np arr = np.array([['a ', 'b ', 'c'], ['d ', 'e ', 'f']])
需要将其转换为如下格式的二维数组:
[['a b c'], ['d e f']]
要求仅使用向量化操作实现,求最高效的方法。
最优向量化实现方案
使用Numpy的char模块结合reduce操作,这是纯向量化的实现,底层由C语言优化,效率远高于循环或非向量化方法:
result = np.char.reduce(np.char.add, arr, axis=1, keepdims=True)
代码说明
np.char.add:Numpy提供的向量化字符串拼接函数,可对数组中的字符串元素逐一对执行拼接操作np.char.reduce:沿着指定轴(此处为axis=1,即每行),用指定操作(np.char.add)依次合并该行所有元素keepdims=True:确保输出结果保持二维数组结构,与目标格式完全匹配
执行上述代码后,result的输出即为:
array([['a b c'], ['d e f']], dtype='<U5')
内容的提问来源于stack exchange,提问作者Kliker
相关产品推荐
相关产品推荐

