Python:将索引作为新列添加到二维数组

标签 python python-3.x list numpy numpy-ndarray

假设我有如下所示的 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/

相关文章:

list - 我想计算列表中某个元素的出现次数

list - 如何遍历列表并在Dart中重置?

Python操作系统错误: Too many open files

python - 在 python curses 中使用哪个 $TERM 来同时拥有 256 种颜色和鼠标移动事件?

python - 在cx_Oracle/UnicodeDecodeError中设置查询结果编码为汉字

python - 如何在1到100的数字范围内查找包含特定数字的所有数字?

python - PIL 的舍入误差

python - 在列表理解中使用列表解包来展平嵌套列表

使用 defaultdict 的 Python 单行树。如何减少所需参数的数量?

python - Selenium 显式等待错误地接受 EC.visibility_of_element_located xpath 元素