如何创建指定格式的垂直2D NumPy数组?
实现方法
首先确保你已经安装并导入了NumPy库:
import numpy as np
按照以下步骤即可得到目标格式的垂直2D NumPy数组:
先将原始列表转换为NumPy数组:
first_name = [["Tom", "Alex", "Sam"], ["Anna", "Bob", "Mike"]] last_name = [["Smith", "Brown", "Lee"], ["Davis", "Allen", "Lewis"]] fn_arr = np.array(first_name) ln_arr = np.array(last_name)对数组进行转置,把原有的2行3列结构转为3行2列,让每一行对应需要配对的名和姓:
fn_transposed = fn_arr.T ln_transposed = ln_arr.T执行元素级的字符串拼接,生成最终结果:
result = np.core.defchararray.add(fn_transposed + " ", ln_transposed) print(result)
运行后输出结果如下:
[['Tom Smith' 'Anna Davis'] ['Alex Brown' 'Bob Allen'] ['Sam Lee' 'Mike Lewis']]
替代方案
如果不想使用NumPy的字符数组操作,也可以用列表推导式先处理再转成NumPy数组,效果完全一致:
result = np.array([[f"{fn} {ln}" for fn, ln in zip(row_fn, row_ln)] for row_fn, row_ln in zip(first_name, last_name)]).T
内容的提问来源于stack exchange,提问作者Joe Lee
相关产品推荐
相关产品推荐

