假设我有如下所示的 np.array
dat = array([[ 0, 1, 0],
[ 1, 0, 0],
[0, 0, 1]]
)
我想要做的是将 (index of row + 1) 作为新列添加到这个数组中,就像newdat = array([[ 0, 1, 0, 1],
[ 1, 0, 0, 2],
[0, 0, 1, 3]]
)
我应该如何实现这一点。
最佳答案
您也可以使用 np.append()
.您还可以获取有关 [...,None] 的更多信息这里
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]]
或者你可以使用 hstack()a = np.array(range(1,4))[...,None] #None keeps (n, 1) shape
dat = np.hstack((dat, a))
正如 hpaulj 所提到的, np.concatenate 是要走的路。您可以阅读更多关于 concatenate文档。另外,请参阅 stackoverflow 上的其他连接示例dat = np.concatenate([dat, a], 1)
关于Python:将索引作为新列添加到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65745624/