Skip to main content
 首页 » 编程设计

python之在 numpy 的二维数组中的特定位置插入一列

2025年05月04日16lovecherry

我有一个二维 numpy 数组,我需要在第一列之前添加一列作为 id。

我的数组是这样的:

x = [['8' '4' 'M' '55' '7' 'S' '7' '2'] 
 ['36' '4' 'F' '58' '1' 'M' '7' '7'] 
 ['33' '3' 'M' '34' '4' 'M' '2' '3'] 
 ['43' '1' 'F' '64' '4' 'M' '7' '68'] 
 ['1' '2' 'M' '87' '4' 'M' '7' '1']] 

我要添加的列是这个 y = ['1' '2' '3' '4' '5']

目标输出是:

z = [['1' '8' '4' 'M' '55' '7' 'S' '7' '2'] 
 ['2' '36' '4' 'F' '58' '1' 'M' '7' '7'] 
 ['3' '33' '3' 'M' '34' '4' 'M' '2' '3'] 
 ['4' '43' '1' 'F' '64' '4' 'M' '7' '68'] 
 ['5' '1' '2' 'M' '87' '4' 'M' '7' '1']] 

有什么办法可以做到吗? (我可以找到插入行但不能插入列的解决方案)

请您参考如下方法:

定义新列:

col = np.array(['1','2','3','4','5']) 
col.shape = (5,1) 

并将其插入到开头:

target = np.hstack((col, x)) 

要在任何给定位置i插入,你可以这样做:

target = np.hstack((x[:,:i], col, x[:,i:])) 

但在我看来,使用 pandas 数据框而不是 numpy 数组会是更好的选择...