Numpy将其添加到矩阵中

时间:2015-11-26 18:08:27

标签: python numpy matrix

我有一个需要在给定矩阵的开头添加一列的函数。我有它的工作:

def add_ones(X):
    return np.vstack((np.ones(X.shape[0]), X.T)).T

这样可行,但正如您所看到的,它将矩阵转换两次。我首先尝试了它而没有转置矩阵,但似乎np.ones(m)总是产生一个我无法转置的行向量(我尝试做np.ones(m).T)

我的问题是,有更好的方法吗?我对numpy不是很熟悉,也不知道转置矩阵的性能下降。

2 个答案:

答案 0 :(得分:2)

您可以使用np.concatenate -

np.concatenate((np.ones((X.shape[0],1)),X),axis=1)

您还可以使用np.column_stack -

np.column_stack((np.ones((X.shape[0])),X))

最后一个np.hstack -

np.hstack((np.ones((X.shape[0],1)),X))

答案 1 :(得分:2)

您可以使用c _。

添加列

np.c_[np.ones(X.shape[0]), X]

http://docs.scipy.org/doc/numpy/reference/generated/numpy.c_.html