Python:将索引作为新列添加到2D数组

Python:将索引作为新列添加到2D数组,python,python-3.x,list,numpy,numpy-ndarray,Python,Python 3.x,List,Numpy,Numpy Ndarray,假设我有如下的np.array dat = array([[ 0, 1, 0], [ 1, 0, 0], [0, 0, 1]] ) 我想做的是将(行+1的索引)作为一个新列添加到此数组中,如下所示 newdat = array([[ 0, 1, 0, 1], [ 1, 0, 0, 2], [0, 0, 1, 3]] ) 我应该如何做到这一点。尝试以下方法: 输出: [[0 1 0 1] [1 0 0 2] [0 0 1 3]] 更一般地说,您可以利用以下各项进行适当的尺

假设我有如下的np.array

dat = array([[ 0,  1,  0],
[ 1,  0,  0],
[0, 0, 1]]
)
我想做的是将(行+1的索引)作为一个新列添加到此数组中,如下所示

newdat = array([[ 0,  1,  0, 1],
[ 1,  0,  0, 2],
[0, 0, 1, 3]]
)

我应该如何做到这一点。

尝试以下方法:

输出:

[[0 1 0 1]
 [1 0 0 2]
 [0 0 1 3]]
更一般地说,您可以利用以下各项进行适当的尺寸调整:

dat = np.insert(dat, dat.shape[1], values=[range(1, dat.shape[0] + 1)], axis=1)
使用:

您也可以使用。你也可以在这里获得更多信息

其输出将为:

[[0 1 0 1]
 [1 0 0 2]
 [0 0 1 3]]
或者您可以使用hstack()

正如hpaulj所提到的,np.concatenate是一种方法。您可以阅读有关文档的更多信息。另外,请参见上连接的其他示例


concatenate
是您的朋友。读了它的文件,这件作品怎么样
np.hstack([dat,np.linspace(1,dat.shape[0],dat.shape[0])重塑(-1,1))
np.c\dat[dat,1:len(dat)+1]
由于
np.append
经常被误用,我更喜欢看到
dat=np.concatenate([dat,a])
)。
newdat = np.column_stack([dat, range(1,dat.shape[0] + 1)])
print(newdat)
#[[0 1 0 1]
# [1 0 0 2]
# [0 0 1 3]]
import numpy as np

dat = np.array([
    [0, 1, 0],
    [1, 0, 0],
    [0, 0, 1]
])

a = np.array(range(1,4))[...,None] #None keeps (n, 1) shape
dat = np.append(dat, a, 1)

print (dat)
[[0 1 0 1]
 [1 0 0 2]
 [0 0 1 3]]
a = np.array(range(1,4))[...,None] #None keeps (n, 1) shape
dat = np.hstack((dat, a))
dat = np.concatenate([dat, a], 1)