如何解决Python:将索引作为新列添加到二维数组
假设我有如下所示的 np.array
dat = array([[ 0,1,0],[ 1,[0,1]]
)
我想要做的是将 (index of row + 1) 作为新列添加到这个数组中,就像
newdat = array([[ 0,1],2],3]]
)
我应该如何实现这一点。
解决方法
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]]
,
您也可以使用 np.append()
。您还可以在此处获取有关 [...,None] 的更多信息
import numpy as np
dat = np.array([
[0,1,0],[1,[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,1) shape
dat = np.hstack((dat,a))
正如 hpaulj 提到的, np.concatenate 是要走的路。您可以阅读有关 concatenate 文档的更多信息。此外,请参阅 stackoverflow
上的其他连接示例dat = np.concatenate([dat,a],1)
,
使用 numpy.insert()
尝试类似的操作:
true
输出:
import numpy as np
dat = np.array([
[0,1]
])
dat = np.insert(dat,3,values=[range(1,4)],axis=1)
print(dat)
更一般地说,您可以使用 numpy.ndarray.shape
进行适当的调整:
[[0 1 0 1]
[1 0 0 2]
[0 0 1 3]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。