给numpy矩阵添加一列

问题的定义:

首先我们有一个数据是一个mn的numpy矩阵现在我们希望能够进行给他加上一列变成一个m(n+1)的矩阵

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.ones(3)
c = np.array([[1,2,3,1],[4,5,6,1],[7,8,9,1]])
print(a)
print(b)
print(c)

[[1 2 3]
[4 5 6]
[7 8 9]]
[ 1. 1. 1.]
[[1 2 3 1]
[4 5 6 1]
[7 8 9 1]]

我们要做的就是把a,b合起来变成c

方法一

使用np.c_[]np.r_[]分别添加行和列

np.c_[a,b]

array([[ 1., 2., 3., 1.],
[ 4., 5., 6., 1.],
[ 7., 8., 9., 1.]])

np.c_[a,a]

array([[1, 2, 3, 1, 2, 3],
[4, 5, 6, 4, 5, 6],
[7, 8, 9, 7, 8, 9]])

np.c_[b,a]

array([[ 1., 1., 2., 3.],
[ 1., 4., 5., 6.],
[ 1., 7., 8., 9.]])

方法二

使用np.insert

np.insert(a, 0, values=b, axis=1)

array([[1, 1, 2, 3],
[1, 4, 5, 6],
[1, 7, 8, 9]])

np.insert(a, 3, values=b, axis=1)

array([[1, 2, 3, 1],
[4, 5, 6, 1],
[7, 8, 9, 1]])

方法三

使用'column_stack'

np.column_stack((a,b))

array([[ 1., 2., 3., 1.],
[ 4., 5., 6., 1.],
[ 7., 8., 9., 1.]])

posted @ 2015-09-20 15:07  mrbean  阅读(41807)  评论(0)    收藏  举报