Python:将索引作为新列添加到2D数组
假设我有如下的np.arrayPython:将索引作为新列添加到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]] 更一般地说,您可以利用以下各项进行适当的尺
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)