我有一个numpy多维数组数组,格式如下:
a = [[1,2],
[8,9]]
然后我想在水平和垂直方向添加一个包含3个值的列表(例如[4,5,6]
),结果如下:
a = [[1,2,4],
[8,9,5],
[4,5,6]]
我是否需要以某种方式组合row_stack和column_stack?
答案 0 :(得分:3)
以下是使用hstack
和vstack
的方式:
>>> a = [[1,2],
... [8,9]]
>>> x = np.array([4, 5, 6])
>>> b = np.vstack((a, x[:-1]))
>>> print np.hstack((b, x[:, None]))
[[1 2 4]
[8 9 5]
[4 5 6]]
您可以将其合并为一行:
>>> print np.hstack((np.vstack((a, x[:-1])), x[:, None]))
[[1 2 4]
[8 9 5]
[4 5 6]]
答案 1 :(得分:1)
不确定是否有更好的方式(即单行),但你可以这样做:
z = np.zeros((3,3))
z[:2,:2] = a
z[:,2] = z[2,:] = array([4, 5, 6])