在 numpy 的二维数组中的特定位置插入一列?
Inserting a column at specific location in 2D array in numpy?
我有一个 2D 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 数组是更好的选择...
我有一个 2D 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 数组是更好的选择...